я могу это сделать:Java - Как создать "анонимный" класс на лету
new Object(){
public void hi(){}
}.hi();
как I (или может я) это сделать:
IWouldRatherStayAnonymous t = new IWouldRatherStayAnonymous extends Thread(){
public void NoNoYouCantCallMe(String s){}
};
t.NoNoYouCantCallMe("some useful data that i will need later, but don't want to save this anonymous class");
и если я могу» t синтаксически это делает, может ли кто-нибудь объяснить логику/реализацию дизайна, почему это никогда не сработает?
==========================================
Изменить: пояснения. Я хотел бы создать анонимный класс без его сохранения, а затем создать экземпляр этого анонимного класса. Мне нужна только 1 ссылка, так как я не планирую часто использовать эту ссылку (и я не хочу, чтобы что-нибудь еще в том же внешнем классе ее использовал). Тем не менее, я хотел бы просто передать некоторые данные в этот анонимный класс только один раз (в идеале конструктор, но вы заметите, что фактически не можете переопределить конструктор в Thread()).
Это действительно не ОГРОМНОЕ дело, мне было просто любопытно, если бы это было выполнимо, но, похоже, из некоторых ответов это возможно, но просто не очень красиво.
Удалите слова 'MyThread extends', и это будет работать. Конечно, он ничего не сделает. –
Что еще более важно, ПОЧЕМУ вы не хотите «сохранить» класс? – Strelok
@Strelok save это означает, что его можно случайно использовать в другом месте, кем-то другим, кто может испортить вещи, для определенного анонимного класса, который я знаю для факта, будет использоваться только один раз, только мной. (что не так уж важно для сделки, я согласен, но мне было просто любопытно) –