小编use*_*051的帖子

MariaDB:ALTER TABLE语法添加FOREIGN KEY?

以下陈述有什么问题?

ALTER TABLE submittedForecast
  ADD CONSTRAINT FOREIGN KEY (data) REFERENCES blobs (id);
Run Code Online (Sandbox Code Playgroud)

我得到的错误信息是

Can't create table `fcdemo`.`#sql-664_b` (errno: 150 "Foreign key constraint is incorrectly formed")
Run Code Online (Sandbox Code Playgroud)

mariadb

9
推荐指数
2
解决办法
1万
查看次数

Eclipse 中数组的可为空性

建议在 Eclipse 4.30 中使用以下代码:

    public void doSomething(@NonNull SomeType[] pArray) {
       // Whatever
    }
Run Code Online (Sandbox Code Playgroud)

如果我启用可空性检查(首选项/Java 编译器/“错误/警告”/空分析/启用基于注释的空分析),那么我会注意到以下内容:

编译器将参数类型视为“SomeType 元素的数组,所有元素均非空”,或者换句话说,@NonNull SomeType 的数组。(如果你不相信我,将 SomeType 更改为 byte,并注意错误消息,因为 byte 是原始类型,所以 @NonNull byte 没有任何意义。)

这一切都很好。但是,我想告诉编译器,数组本身是非空的。有没有可能表达这一点?(假设@NonNull (SomeType[]) pArray。)

谢谢!

java

7
推荐指数
1
解决办法
140
查看次数

迭代ClassLoader.getResources()的结果时出现奇怪的NPE

我假设下面的代码是安全的,但是我在调​​用时得到了一个N​​PE hasMoreElements().什么想法可能是错的?

我应该补充一点,我在Windows上使用Java 1.7.0_55-b13,64位.

final List<URL> urls = new ArrayList<URL>();
final String plUri = "META-INF/plugin.xml";
Enumeration<URL> urlsEn =
   Thread.currentThread().getContextClassLoader().getResources(pluginsUri);
if (urlsEn != null) {
  while (urlsEn.hasMoreElements()) {  //  NPE happens here
    final URL u = urlsEn.nextElement();
    urls.add(u);
  }
}
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

java.lang.NullPointerException
    at sun.misc.MetaIndex.mayContain(MetaIndex.java:243)
    at sun.misc.URLClassPath$JarLoader.getResource(URLClassPath.java:830)
    at sun.misc.URLClassPath$2.next(URLClassPath.java:273)
    at sun.misc.URLClassPath$2.hasMoreElements(URLClassPath.java:283)
    at java.lang.ClassLoader$2.hasMoreElements(ClassLoader.java:1322)
    at sun.misc.CompoundEnumeration.next(CompoundEnumeration.java:45)
    at sun.misc.CompoundEnumeration.hasMoreElements(CompoundEnumeration.java:54)
    at sun.misc.CompoundEnumeration.next(CompoundEnumeration.java:45)
    at sun.misc.CompoundEnumeration.hasMoreElements(CompoundEnumeration.java:54)
    at com.github.jochen.afw.core.guice.GuiceComponentFactoryBuilder.getComponentUrls(GuiceComponentFactoryBuilder.java:256)
    at com.github.jochen.afw.core.guice.GuiceComponentFactoryBuilder.build(GuiceComponentFactoryBuilder.java:160)
    at com.github.jochen.afw.core.guice.GuiceComponentFactoryBuilderTest.testSuccessfullConfiguration(GuiceComponentFactoryBuilderTest.java:20)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    ....
Run Code Online (Sandbox Code Playgroud)

java nullpointerexception classloader

6
推荐指数
1
解决办法
1025
查看次数

我可以将javax.persistence.OneToOne与javax.persistence.ForeignKey一起使用吗?

以下代码有什么问题?我想要实现的是确定生成的外键的名称.

@Entity
public class Artifact {
@Id private long id;
@OneToOne(optional=false, fetch=FetchType.LAZY)
@ForeignKey(name="FK_ARTI_REPO")
private Repository repository;
Run Code Online (Sandbox Code Playgroud)

但编译器显示此错误消息:

The annotation @ForeignKey is disallowed for this location.
Run Code Online (Sandbox Code Playgroud)

代码有什么问题?

annotations hibernate jpa

3
推荐指数
1
解决办法
1562
查看次数

SimpleDateFormat抛出ParseException,错误偏移为0

以下代码有什么问题?它抛出一个ParseException,错误偏移量为0.

final DateFormat df = new SimpleDateFormat("EEE MMM dd HH:mm:ss yyyy");
df.parse("Thu Jan 23 14:24:47 2014");
Run Code Online (Sandbox Code Playgroud)

java simpledateformat

2
推荐指数
1
解决办法
770
查看次数

Java 17 中的 LineNumberReader 是否存在不兼容性?

建议使用下面的代码片段: 基本上,它完全读取字符串 One\nTwo,通过 LineNumberReader 进行管道传输。到目前为止,没有什么特别的。问题:在 Java 8 和 Java 11 上,输出为 1。然而,在 Java 17 上,输出为 2。(看起来,最后一个未终止的行在后一种情况下被计数,但在前一种情况下不被计数) 。

问题:这是已知的不兼容性吗?是否有记录并且是有意为之?

谢谢,

约亨

    final StringReader sr = new StringReader("One\nTwo");
    final LineNumberReader lnr = new LineNumberReader(sr);
    for (;;) {
        final int c = lnr.read();
        if (c == -1) {
            System.out.println("Line number=" + lnr.getLineNumber());
            break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

java io

2
推荐指数
1
解决办法
133
查看次数

限制Java接口的适用性

是否可以限制 Java 接口的适用性?换句话说,如果我有一个类 A 和一个 Java 接口 I:是否可以强制 I 的实例也是 A 的实例?

或者,换句话说:如果我有类似的东西

public class B implements I {
}
Run Code Online (Sandbox Code Playgroud)

如果 B不是A 的子类,我希望编译器抛出错误。

A是我无法修改的上游类。(我自己的)的一些子类A将实现I,但其他子类则不会。

我的界面将包含很多方法,例如:

public default void foo() { 
    ((A) this).doSomething(...); 
}
Run Code Online (Sandbox Code Playgroud)

我的目的是确保强制转换A能够正常工作。

java

2
推荐指数
1
解决办法
191
查看次数