Tag: 访问者

java中的通用访客模式

以下java实现的访问者模式使用generics,一般是否有用? (我想是的)。 它能以某种方式得到改善吗? 使用匿名类轻松调用很重要。 谢谢。 (使用示例): Vector numbers = new Vector(); numbers.add(new Double(1.2)); numbers.add(new Float(-1.2)); numbers.add(new Double(4.8)); numbers.add(new Float(-3.4)); numbers.add(new Long(123456)); numbers.add(new Short(“14”)); For.each(numbers, new Visitor() { public void doIt(Double n) { System.out.println(“doIt() for double: ” + n); } public void doIt(Float n) { System.out.println(“doIt() for float: ” + n); } public void doIt(Number n) […]

Java字段类型是否为一般递归自我类型的值?

给定一个类层次结构,其中基类定义递归自我类型: abstract class A<T extends A> { } 我如何声明另一个类(在T中不应该是通用的,因为这样的T可能在对象的生命周期内变化),并且一个字段可以包含A的任何子类? 以下不起作用: public class B { //fails to compile, because the capture of ? is not sufficiently narrow private A a; public <T extends A> setA(T a) { this.a = a; } } – 问题结束 – 我注意到一些StackOverflow成员倾向于接近某些难题,“你为什么要这样做?” 以下是我使用此模式的理由 – 您可以注意到Java标准库在其Enum类的定义中也使用递归自我类型: Enum<E extends Enum> 。 同样可以将此问题称为“如何定义Enum类型的字段。 理由示例: abstract […]