1

我想创建一些我只能描述为“代码工厂方法”的东西。

为了避免代码重复,我想创建一个包含要执行的代码的方法,但是在类型应该去的地方使用“占位符”。该方法当然会将这些类型作为参数,并将每个类型放在适当的位置。例如:

void factory(placeholder1, placeholder2){  
  ArrayList<placeholder1> List = new ArrayList<placeholder1>;  
  Placeholder2 variable;  
}  
factory(String, Integer);

会产生:

ArrayList<String> List = new ArrayList<String>;  
Integer variable;

有什么想法我会怎么做?

非常感谢您的帮助。

编辑:感谢您的所有反馈。我采用的是通用方法,它工作了一段时间,直到我遇到了我相信有人之前提到的东西。我想在一个通用对象中使用其中一种方法,例如:

整数变量 = new Integer();
变量.isInteger();

看来我无法使用泛型来做到这一点。有可能解决这个问题吗?

4

2 回答 2

2

下面是它的外观:

<placeholder1, placeholder2> void factory(){  
  ArrayList<placeholder1> List = new ArrayList<placeholder1>;  
  placeholder2 variable;  
}  
this.<String, Integer> factory();

但我同意马特的观点,即您应该阅读泛型。此外,请注意类型擦除,因为这可能无法满足您的预期。

于 2010-10-01T20:14:03.950 回答
2

而不是简单地采用泛型,看起来你想要某种宏工具。Java 没有。例如,为了扩展你的例子,你不能做这样的事情:

factory(String, Integer);
List.get(variable);
于 2010-10-01T20:19:15.833 回答