小编Pat*_*ati的帖子

为什么使用double的for循环无法终止

我正在查看旧的考试问题(目前是大学的第一年).我想知道是否有人能够更彻底地解释为什么以下for循环在它应该结束时不会结束.为什么会这样?我知道它因为四舍五入错误而跳过100.0,但为什么呢?

for(double i = 0.0; i != 100; i = i +0.1){
    System.out.println(i);
}
Run Code Online (Sandbox Code Playgroud)

java for-loop floating-point-precision

27
推荐指数
4
解决办法
1499
查看次数

如何同时使用onclick和target ="_ blank"

代码如下:

    <p class="downloadBoks" onclick="location.href='Prosjektplan.pdf'">Prosjektbeskrivelse</p>
Run Code Online (Sandbox Code Playgroud)

像这样工作正常,但它在同一窗口中打开文件.我想应用target ="_ blank".但经过一些谷歌后,我仍然无法弄明白.

html javascript onclick

22
推荐指数
4
解决办法
11万
查看次数

正则表达式:定义字符串的最大长度,具有重复组

标题可能会令人困惑,但我会尝试用一些例子来解释。这是我现在的表达方式。

^([A-ZÆØÅ][a-zæøå]+[\s-]{1}){2,20}$
Run Code Online (Sandbox Code Playgroud)

我想要一个与这些相匹配的表达式:所以一般规则是,

- 每个单词必须以大写字母开头

- 大写字母后面只能是小写字母

- 最多可以有一个 - 或彼此之间有空格

最困难的部分是,在这些的每一个组合中,我希望最后一行最多包含 20 个字符

我想要一个与这些相匹配的表达式:

April-Can Æøå
An-An-An An An-An
Aaaaabbbbbcccccddddd
Aaa
Run Code Online (Sandbox Code Playgroud)

不匹配

andkas
Andfak-lkakad
AppleApple
Carrotcarrotcarrotcarrotcarrotcarrot
Banana- Banana
Apple-apple-apple-apple-apple banana banana apple carrot
Run Code Online (Sandbox Code Playgroud)

regex regex-group

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

List <Object>不为null,但不能在没有nullpointer异常的情况下调用.isEmpty

    Laerer laerer = (Laerer) session.getAttribute("laererInnlogget");
    List<Spoerreskjema> ss = laerer.getSkjemaliste();

    if(ss == null)
        System.out.println("1");
    if(ss != null)
        System.out.println("2");
    if(ss.isEmpty())
        System.out.println("3");
    if(!ss.isEmpty())
        System.out.println("4");
Run Code Online (Sandbox Code Playgroud)

if循环用于显示问题所在.

控制台将显示2,然后在到达ss.isEmpty()时抛出NullPointerException

laerer对象不为null,但包含一个应为null(或至少为空)的List

所有这些都存储在postgresql数据库中或从postgresql数据库中获取.

知道问题可能是什么?

顺便说一句,调用ss.size()也会导致NullPointerException

我本质上希望能够检查列表是否为空.

SEVERE: Servlet.service() for servlet [no.hib.prosjekt01.controllers.laerer.LaererHjemServlet] in context with path [/prosjekt01] threw exception
java.lang.NullPointerException
    at org.apache.openjpa.enhance.no$hib$prosjekt01$models$Laerer$pcsubclass.pcReplaceField(Unknown Source)
    at org.apache.openjpa.kernel.StateManagerImpl.replaceField(StateManagerImpl.java:3254)
    at org.apache.openjpa.kernel.StateManagerImpl.storeObjectField(StateManagerImpl.java:2681)
    at org.apache.openjpa.kernel.StateManagerImpl.storeObject(StateManagerImpl.java:2671)
    at org.apache.openjpa.jdbc.meta.strats.StoreCollectionFieldStrategy.load(StoreCollectionFieldStrategy.java:596)
    at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:934)
    at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:681)
    at org.apache.openjpa.kernel.DelegatingStoreManager.load(DelegatingStoreManager.java:117)
    at org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.java:78)
    at org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManagerImpl.java:3146)
    at org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.java:3226)
    at org.apache.openjpa.kernel.StateManagerImpl.fetchObjectField(StateManagerImpl.java:2468)
    at org.apache.openjpa.kernel.StateManagerImpl.fetchField(StateManagerImpl.java:890)
    at org.apache.openjpa.kernel.StateManagerImpl.fetch(StateManagerImpl.java:852)
    at org.apache.openjpa.enhance.RedefinitionHelper$1.invoke(RedefinitionHelper.java:230)
    at com.sun.proxy.$Proxy68.isEmpty(Unknown Source)
    at no.hib.prosjekt01.controllers.laerer.LaererHjemServlet.doGet(LaererHjemServlet.java:35)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
    at …
Run Code Online (Sandbox Code Playgroud)

java list nullpointerexception httpsession

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

为什么Object.hashCode()没有为看似相同的对象返回相同的值

代码如下:

public class Main {
    public static void main(String[] args) {
        Student a = new Student(10, "Ole");
        Student b = new Student(10, "Ole");

        System.out.println(a.hashCode());
        System.out.println(b.hashCode());
    }
}
Run Code Online (Sandbox Code Playgroud)

对象看起来像这样:

public class Student {
    private int snr;
    private String namn;

    public Student(int snr, String namn) {
        this.snr = snr;
        this.namn = namn;
    }
}
Run Code Online (Sandbox Code Playgroud)

这些是运行代码时的结果:

57651960
441366923
Run Code Online (Sandbox Code Playgroud)

我已经阅读了一些javadoc,但我找不到原因,有人可以解释为什么会这样吗?还有什么我必须做的才能使结果相同?(如果可能的话)

谢谢你的解释:)!现在有道理;)

java object hashcode

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