在Java中,匿名类可以声明自己的类型参数吗?
匿名类可以声明自己的类型参数吗?
Can an anonymous class declare its own type parameters?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
匿名类可以声明自己的类型参数吗?
Can an anonymous class declare its own type parameters?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
你是对的,这是不可能的。由于匿名类只能使用一次,因此向其添加永远无法实际使用/继承的类型参数有何意义?您不能从定义它的代码位置以外的任何其他代码位置
多次实例化匿名类,也不能对其进行子类化。You are right, it's not possible. Since an anonymous class is meant to be used only once, what would be the point of adding type parameters to it which you can never actually use/inherit? You can't instantiate an anonymous class
more than oncefrom any other code location than the one which defines it, and you can't subclass it either.不可以。Java 语言规范详尽地定义了类实例创建表达式的可能参数,如下所示:
因此,虽然您可以指定超类或接口或构造函数的实际类型参数,但不能定义新的类型参数。虽然我承认这在某些罕见的情况下可能很有用(因为可以从类主体中使用新的类型参数),但有一个简单的解决方法:
No. The Java Language Specification exhaustively defines the possible arguments to a class instance creation expression as follows:
So while you can specify the actual type parameters of the super class or interface, or the constructor, you can not define new ones. While I grant that this might be useful in some rare cases (because the new type parameter could be used from the class body), there are easy workaround for that:
但是,有一种方法可以使用参数。
匿名类内部任何声明的方法都可以使用
的属性,下面的代码演示了这一点,
希望该示例对您有所帮助。
But, there is a way to use parameters.
Any declared method inside the anonymous class can use the
the following code demonstrate it
I hope that the example will help.