草庐IT

唯一标识

全部标签

点分标识符的Java解析

Java用来解析点分标识符的规则是什么?例如:importFoo.Bar;classFoo{publicstaticclassBar{};};现在,Foo.Bar可以引用导入的类Bar或源代码中定义的类。这种歧义是如何解决的?我已经尝试过这个案例,所以我知道在实践中会发生什么,但我正在寻找更多;我想知道基本规则。例如,如果源文件中存在Foo.Bar,我是否仍然可以引用导入的类Foo.Bar.Baz?如果Foo.Bar是一个包同时也是一个类呢?如果编译器在最近的Foo中找不到Foo.Bar,它是直接放弃,还是继续寻找其他Foo直到它用完或找到一个匹配的?(顺便说一句,我在语言规范中找到了

java - Hibernate OneToOne 加入唯一但不是主键

我有两个表:users:user_id(primary)etc..users_infoid(primary)user_id(unique)etc..我想在user_id字段上创建从user到user_info的一对一关系。请注意,它是唯一的但不是主要的。可以在Hibernate上完成吗?无论我在做什么,Hibernate都会尝试使用users_info.id字段而不是users_info.user_id字段。@OneToOne(mappedBy="user_id",cascade={CascadeType.ALL},fetch=FetchType.LAZY,optional=true)

Java 7 - LinkOption - 为什么 NOFOLLOW_LINKS 是唯一可用的选项?

我认为标题说明了一切。我将如何指定FOLLOW_LINKS?为什么要创建一个只有一个选项的枚举?例如,方法java.nio.file.Files.getLastModifiedTime(Path,LinkOption...)将LinkOption-s数组作为参数。你必须通过一些东西,但你只能通过一个可用的选项。这让我很吃惊,很想了解更多。 最佳答案 跟随链接是默认行为。即,如果您不指定NOFOLLOW_LINKS,则会跟踪链接。来自documentationFiles.getLastModifiedTime()方法(强调我的):Th

java - 具有延迟加载业务标识符的 Hibernate/JPA equals() 和 hashCode()

我想知道如何为Hibernate实体编写正确的equals()和hashCode(),这些实体与作为业务key很重要的另一个实体具有延迟加载的ManyToOne关系。请注意,我已经阅读了theHibernatedocumentationonthistopic我知道我必须/不应该使用对象ID。为了澄清,这里有一个例子:publicclassBusinessEntityimplementsSerializable{//forsimplicity,herejusttheimportantpartprivateStrings;@ManyToOne(fetch=FetchType.LAZY)pr

java - 为什么包装类对象的标识符不能用作引用变量

我的问题涉及包装类。我知道当我们使用包装类存储原始类型文字时,我们将其存储为该包装类的对象,因此对象的标识符将是一个引用变量(有点像C++中的指针)。例如,在Integerwi=newInteger("56")中,wi是一个引用变量。但如果这是真的:为什么我可以做wi++或wi+=2?为什么编译器像处理普通原始变量一样处理那些引用变量?引用变量不是存储对象的引用吗?给定Integerwi=newInteger("56")和intpi=56,为什么(wi==pi)返回真。wi不是应该存储一个引用(地址)吗?另一个问题:当引用变量作为参数传递给方法时,它算作按引用传递,因此发生的修改该引用

java - Java中唯一标识文件

我在Linux上运行,我的Java应用程序不适合移植。我正在寻找一种在Java中唯一标识文件的方法。我可以使用statfs系统调用,因为(f_fsid,ino)对唯一标识一个文件(不仅跨文件系统),如下所示:http://man7.org/linux/man-pages/man2/statfs.2.html问题是是否可以直接从Java中提取fsid这样我就可以避免编写JNI函数?inode可以用NIO提取出来,但是fsid呢?inode和fsid来自不同的结构,由不同的系统调用操作... 最佳答案 此java示例演示了如何获取文件的

java - 如何使用 Lucene 生成唯一 ID?

我正在使用Lucene来存储(以及索引)各种文档。每个文档都需要一个持久的唯一标识符(用作URL的一部分)。如果我使用的是SQL数据库,我可以使用integerprimarykeyauto_increment(或类似的)字段为添加的每条记录自动生成唯一ID。有没有办法用Lucene做到这一点?我知道Lucene中的文档是有编号的,但我注意到这些编号会随着时间的推移而重新分配。(我使用的是Java版本的Lucene3.0.3。) 最佳答案 正如larsmans所说,您需要将其存储在单独的字段中。我建议您对字段进行索引和存储,并使用Ke

java - 在保留唯一性的同时缩短 java UUID

我正在尝试缩短javaUUID,同时保留与UUID相同的唯一性。我写了下面的代码:publicstaticvoidmain(String[]args){UUIDuid=UUID.randomUUID();StringshortId=to62System(uid.getMostSignificantBits())+to62System(uid.getLeastSignificantBits());System.out.println(shortId);}staticchar[]DIGITS="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKL

java - Java方法的内部标识是什么?

众所周知,在Java中,方法名不足以区分不同的方法。我认为(可能是错误的),要区分一个方法,它需要以下信息:(className,methodName,methodParameters)进一步,如何在内部更有效地识别方法?我听说过“方法ID”。是不是上面的三元组和整数之间存在映射关系,所以JVM解析后只使用methodid?如果是,它是否位于符号表中?谢谢! 最佳答案 这是一个CONSTANT_NameAndType_infoStructure指向methoddescriptor.它几乎由方法名称、参数类型和(有点令人惊讶的)返回类

java - Java的clone()方法是实现多态克隆的唯一途径吗?

我需要为我的类(class)配备多态克隆(深拷贝),即我需要这样的东西才能工作:SuperTypeoriginal=newSubType();SuperTypecopy=original.clone();其中original.clone()可以被任何机制替代以创建深拷贝,copy的实际类型应为SubType,因为original也是一个SubType。clone()方法和Cloneable接口(interface)是实现此目的的唯一方法吗?不能使用工厂方法和复制构造函数,因为实际的类只在运行时才知道,对吧?除了那些序列化-反序列化方法和Javadeep-cloninglibrary之外