如何创建一个Java类,类似于C ++模板类?

如何在Java中编写相应的内容?

// C++ Code template class SomeClass { private: T data; public: SomeClass() { } void set(T data_) { data = data_; } }; 

 class SomeClass { private T data; public SomeClass() { } public void set(T data_) { data = data_; } } 

您可能还希望将类本身公开,但这几乎是Java的字面翻译。

C ++模板和Javagenerics之间还存在其他差异,但这些都不是您的示例的问题。

您使用“generics”在Java中执行此操作:

 public class SomeClass { private T data; public SomeClass() { } public void set(T data) { this.data = data; } }; 

维基百科对Java中的generics有很好的描述。

 /** * This class is designed to act like C#'s properties. */ public class Property { private T value; /** * By default, stores the value passed in. * This action can be overridden. * @param _value */ public void set (T _value) { value = _value; } /** * By default, returns the stored value. * This action can be overridden. * @return */ public T get() { return value; } } 
 public class GenericClass { private T data; public GenericClass() {} public GenericClass(T t) { this.data = t; } public T getData() { return data; } public void setData(T data) { this.data = data; } // usage public static void main(String[] args) { GenericClass gci = new GenericClass(new Integer(5)); System.out.println(gci.getData()); // print 5; GenericClass gcs = new GenericClass(); gcs.setData("abc"); System.out.println(gcs.getData()); // print abc; } }