https://zhidao.baidu.com/question/580704591.html
从占用内存上看,c语言的联合体共用同一块内存,应该与Java中的单例很类似。联合体映射为单例类应该能够解决你的问题。
typedef union
{ unsigned long ul[2];
unsigned int ui[4];
unsigned char uc[8];
} DataE;
//单例模式
public enum Union {
INSTANCE;
private Object obj;
public Object getObj() {
return obj;
}
public void setObj(Object obj) {
this.obj = obj;
}
public static void main(String[] args) {
Union u = Union.INSTANCE;
u.setObj(new int[]{1,3,5});
int[] a = (int[]) u.getObj();
System.out.println(a.length);
}
}
答案二
用类, 只有这样。
class DateE{
long ul[2];
int ui[4];
byte uc[8];
//get/set方法
}
java没有 unsigned long,如果数很大就换成BigDecimal
,或 BigInteger
本文探讨了C语言中的联合体如何映射到Java中的单例模式,并提供了一个具体的例子来展示联合体如何被转换成Java代码。此外,还讨论了在Java中使用类来实现类似功能的方法。
1636

被折叠的 条评论
为什么被折叠?



