我正在尝试做这样的事情:
public void <String,int> getItem
{
return <"Jen",23>;
}
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用自定义类,但是如何在一个函数调用中返回两个结果.
1 - 上面的模板功能是否可以在java中使用,以及调用者如何获得它的第1部分和第2部分.
2 - 我可以使用actionscript中的关联数组吗?
3 - 我可以使用某种哈希映射吗?
4 - 有什么其他可能的方式
我尝试了所有三种方式,但是这种或那种语法正在打击我.所以如果有人能给出明确的例子
mae*_*ics 10
Java函数始终返回单个值,因此您唯一的选择是返回包含多个值的"集合"对象,例如Array或适当的Collection.例如:
public Object[] getItem() { return new Object[] { "Jen", 23 }; }
public Collection<Object> { return Arrays.asList("Jen", 23); }
Run Code Online (Sandbox Code Playgroud)
虽然,Java中的典型模式是返回封装您的值的自定义类型,例如:
public class NameAge {
public final String name;
public final int age;
public NameAge(String name, int age) {
this.name = name;
this.age = age;
}
}
// ...
public NameAge getItem() { return new NameAge("Jen", 23); }
Run Code Online (Sandbox Code Playgroud)
或者更一般地说:
public class Pair<X, Y> {
public final X x;
public final Y y;
public Pair(X x, Y y) {
this.x = x;
this.y = y;
}
}
// ...
public Pair<String,Integer> getItem() {
return new Pair<String,Integer>("Jen", 23);
}
Run Code Online (Sandbox Code Playgroud)
当然,如果要将这些自定义类型用作哈希键,则会对哈希(相等和哈希码)产生严重影响.
| 归档时间: |
|
| 查看次数: |
5208 次 |
| 最近记录: |