我正在寻找一种实现类似于以下内容的类的方法,它包含一个带有两个参数的构造函数,第二个参数是通用运行时类型的。
我正在Unity 3D中使用.Net3.5
public class Parameter
{
private mParameterName;
private T parameterValue; // runtime parameter
public Parameter( string parameterName, string parameterValue ){}
public Parameter( string parameterName, long parameterValue ){}
public Parameter( string parameterName, double parameterValue ){}
}
任何对正确方向的帮助将非常有用。预先感谢。
答案 0 :(得分:2)
这很容易做到:
public class Parameter<T>
{
private string mParameterName;
private T parameterValue; // runtime parameter
public Parameter( string parameterName, T parameterValue )
{
this.mParameterName = parameterName;
//this. is required below because the method parameter and class member
//have the same name, so this. refers to the class member and without
//refers to the method parameter.
this.parameterValue = parameterValue;
}
}
在这里,您可以在类名称public class Parameter<T>
中定义泛型类型参数,然后可以在构造函数中使用它。您不需要为每种类型都使用新的构造函数。
答案 1 :(得分:0)
通常,您必须按如下所示精确定义类Comparator<Petition> cmp =
(Petition left, Petition right) ->
left.getSignataires().size() - right.getSignataires().size();
List<Petition> resultList = petitionList.stream()
.sorted(Collections.reverseOrder(cmp))
.collect(Collectors.toList());
的类型
T