小编Saa*_*aad的帖子

在另一个列表中累计列表的数量

目前我的代码如下.嵌入在另一个列表中的列表,我想获得嵌入列表对象的总数.

我想为此写一个快速的oneliner.我能用Java 8做一个有效的Lambda或FP技巧吗?

int totalNo = 0;
for (ClassB classB : listOfClassB) {
    totalNo+= classB.getAnotherObjList().size();
}
Run Code Online (Sandbox Code Playgroud)

java functional-programming java-8 java-stream

8
推荐指数
1
解决办法
99
查看次数

ASM如何知道算术运算是有符号还是无符号?

我正在使用MASM 14.0进行组装,我对以下代码的输出感到困惑.

TITLE Exercise 4 from chapter 4

; Author : Saad Ahmed

INCLUDE Irvine32.inc

.code
main PROC

mov eax, 0
mov al, 255
add al, 1
call DumpRegs       ; Display registers

mov al, 127
add al, 1
call DumpRegs       ; Display registers

exit
main ENDP
END main
Run Code Online (Sandbox Code Playgroud)

两个算术运算都在无符号整数255和127上完成.

但是,CPU将第一个操作255视为无符号整数并设置进位标志,当您将1添加到无符号255时会发生这种情况.

完整的状态标志是CF = 1 SF = 0 ZF = 1 OF = 0 AF = 1 PF = 1,eax为0

但是,第二个操作将127视为有符号整数,因为它设置了溢出标志,如果你将1加到+127就会发生这种情况.

完整的状态标志为CF = 0 SF = 1 ZF = 0 OF = …

x86 assembly masm irvine32

5
推荐指数
2
解决办法
415
查看次数

当年份不是四位数字时,日期解析异常

我有以下 Java 代码。

SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
String expiryDateInString = "05/14/86";

final Instant expiryDate = dateFormat.parse((expiryDateInString)).toInstant();
Run Code Online (Sandbox Code Playgroud)

我希望这会导致解析异常,但我得到的年份被解析为 0086,我相信这已经是过去的事了。我怎样才能使年份成为严格的 4 位数年份,而其他任何年份都会例外。

java datetime date simpledateformat

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

将项目转换为eclipse中的maven后的目录结构

我有一个java项目,我在eclipse中使用m2e转换为maven.由于我的项目是遗留项目,因此它不遵循maven目录结构,例如src/main/java和src/test/java,因此在转换之后,之前的目录结构没有改变.

我想知道m2eclipse中是否有一个简单的方法或快捷方式将我的项目重构为maven使用的默认目录结构.

我尝试在我的src文件夹中添加一个新的源文件夹并将文件夹嵌套到src/main/java但是我收到以下错误.

请查看快照,因为我没有足够的声誉来发布它.

快照

java eclipse maven

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

我们是否必须为放在hashmap中的枚举重写equals/hashcode

我有一个枚举类如下.

public enum Item {
   COKE("Coke", 25), PEPSI("Pepsi", 35), SODA("Soda", 45);
   private String name;
   private int price;

private Item(String name, int price) {
    this.name = name;
    this.price = price;
}

public String getName() {
    return name;
}

public long getPrice() {
    return price;
}
}
Run Code Online (Sandbox Code Playgroud)

以及如下定义的散列映射

private Map<Item, Integer> inventory = new HashMap<Item, Integer>();
Run Code Online (Sandbox Code Playgroud)

我是否需要重写了hashCode和枚举等于Iteminventory.put()inventory.get()正常工作?如果没有,为什么?

java hash equals hashmap hashcode

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

如何重构这个简单的类字段

我有一个非常基本的OOP问题.我有两个课程如下

public class Class1 {
    private String field1;
    private String field2;
    private List<String> field3; 
    // constructors 
}

public class Class2 {
    private String field1;
    private String field2;
    private List<Object1> field3; 
    // constructors 
}
Run Code Online (Sandbox Code Playgroud)

我必须创建class2的唯一原因是因为class1中的List可以是字符串列表或Object2列表.有没有办法摆脱Class2,并让field3表现为String的列表,也作为Object2的列表.

我知道我可以做点什么

public class Class1 {
    private String field1;
    private String field2;
    private List<String> field3; 
    private List<Object1> field4; 

    // constructors which are initializing null to either field 3 or field 4
}
Run Code Online (Sandbox Code Playgroud)

但上面看起来并不干净,因为用任何一个列表实例化的对象都不应该在其他List中有任何引用.

java oop inheritance

0
推荐指数
1
解决办法
46
查看次数

用于使用父类中未定义的 &lt;T&gt; 方法的 Java 泛型

我有一个方法如下

private <T extends GenericObject>void printStatus(final T result) {
    System.out.println("Status", result.getStatus());
    System.out.println("GenericStatus", result.getGenericStatus());
    System.out.println("GenericMessage", result.getGenericMessage());

}
Run Code Online (Sandbox Code Playgroud)

getGenericStatus 和 getGenericMessage 方法在 genericObject 父类中定义。但是,getStatus 方法是在扩展 GenericObject 的子类中定义的,getStatus 的返回类型是一个枚举,它为每个子类定义不同。如

public class A extends GenericObject {

      /** Enum Astatus. */
      private AStatus status;

      AStatus getStatus() {
           return status;
      }
 }

public class B extends GenericObject {

      /** Enum Bstatus. */
      private BStatus status;

      BStatus getStatus() {
           return status;
      }
 }
Run Code Online (Sandbox Code Playgroud)

问题是 printStatus 中的 result.getstatus() 给出了编译错误。在不重构大量代码的情况下,在 printStatus 方法中解决此问题的最简单方法是什么?

java generics inheritance extends

0
推荐指数
1
解决办法
130
查看次数