小编Dun*_*nes的帖子

用户输入的Java对象名称作为方法调用

被赋予创建钱包类的任务,您可以在其中创建成员并在他们之间转移资金.然后,用户可以选择谁给钱以及谁收到钱.这是一些相关的代码:

Wallet adamsWallet = new Wallet("Adam", 403.50);
Wallet bentsWallet = new Wallet("Bent",  873);
Wallet clarksWallet = new Wallet("Clark", 319.50);


object_name_here.transfer(other_object_name_here, 200);
Run Code Online (Sandbox Code Playgroud)

所以我希望用户例如在扫描仪中输入"adam",然后以某种方式将"sWallet"附加到adam,然后将其用作方法调用的对象名称.

我该怎么做?还是有更好的方法呢?

java object

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

在 java 中使用 == 运算符比较 Class<T> 对象是个好主意吗?

在 .NET 中,在比较 Type 对象时我可以不用 == 。是否可以使用相同的运算符来比较 Java 中的 Class 对象,还是应该始终使用 equals() 方法?

java reflection

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

在ArrayList中查找重复项

有人可以告诉我,我的导师提供的代码中的以下行是应该做的吗?

if (data.contains(entry))
Run Code Online (Sandbox Code Playgroud)

完整方法:

public String add(Entry entry) {
    if (entry == null)
      return "Error: null entry";
    if (data.contains(entry))
      return "Error: this entry already in the book";

    boolean done = data.add(entry);    
    if (done)
      return " entry added";
    else
      return "entry could not be added";
  }
Run Code Online (Sandbox Code Playgroud)

我以为它是在ArrayList中检查具有相同细节的现有条目,但是当我添加一个重复的条目时,它不会进入if语句,所以我认为我认为错了?我在互联网上搜索过,它说这是为了这个目的所以为什么它对我不起作用?

java arraylist

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

将FileOutputStream重定向到控制台-Java

我只想重写代码,以减少类中执行相同操作但可以写入文件或控制台的方法的数量,因此我可以执行以下操作:

PrintFlightSchedule(String aFileName); // prints to a file
PrintFlightSchedule(); // writes to console.
Run Code Online (Sandbox Code Playgroud)

我试图通过定义抽象OutputStream,然后将其实例化为PrintStream或控制台(通过System.out)来创建以下测试方法,以演示我的目标:

public static void testOutputStream(String fileNm, String msg) {
    OutputStream os;
    if (fileNm.equals("") ) { // No file name provided, write to console
        os = System.out;
    }
    // File name provided, write to this file name
    else {
        try {
            os = new FileOutputStream(fileNm);
        }
        catch (FileNotFoundException fe) {
            System.out.println("File not found " + fe.toString());
        }
    }
    // Use the output stream here - ideally println method? …
Run Code Online (Sandbox Code Playgroud)

java console

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

模拟对象使用Mockito调用final类静态方法

我刚刚开始模拟我们应用程序的不同层.当我调用最终类静态方法时,我的一个模拟对象正在返回NPE.有没有解决的办法?

例如

when(mockObject.someMethod(FinalClass.staticMethod(someParam)).anotherMethodCall)
    .thenReturn("someString");
Run Code Online (Sandbox Code Playgroud)

java junit unit-testing mockito

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

我想将一个final变量初始化为一个函数

程序代码:

public class A{
   public static final String l;

   public void method(String strTestData){
     l = strTestData;
   }
}
Run Code Online (Sandbox Code Playgroud)

strTestData将包含"public static final java.lang.String DELETE"之类的数据.可能吗?

java final

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

带有组合框和文本字段的简单 Jframe 以及标签中的结果

我是 Java 新手,所以这个问题对某些人来说可能很愚蠢。我将 Eclipse 与摆动窗口构建器一起使用,但我不知道如何使我的 Jframe 工作。

我想要实现的目标很简单。

  1. 我想要一个带有多个选项的组合框(后面有两列,但我从一列开始),代表一个银行代码。
  2. 用于输入银行帐号的文本框。
  3. 一个按钮,需要使用框中选择的值和文本框中的帐号来调用方法 createIban(code,number)。此方法返回一个带有完整 IBAN 的字符串。

我希望这个字符串出现在标签或其他东西中(也可能复制到剪贴板或一些)。

我希望有人能帮助我在这个任务中走得更远。

java swing jframe jtextfield jcombobox

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

Java在原子操作上同步

这个Java类线程是安全的还是重置方法也需要同步?如果有,有人可以告诉我原因吗?

public class NamedCounter {
   private int count;
   public synchronized void increment() { count++; }
   public synchronized int getCount() { return count; }
   public void reset() { count = 0; }
}
Run Code Online (Sandbox Code Playgroud)

java multithreading synchronization

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

ArrayBlockingQueue - 它真的是并发的吗?

没有任何一个操作ArrayBlockingQueue与其他任何操作并发; 他们总是采取同样的锁.即使对于该size()方法,它也需要锁定.

 public int size() {
        final ReentrantLock lock = this.lock;
        lock.lock();
        try {
            return count;
        } finally {
            lock.unlock();
        }
    }
Run Code Online (Sandbox Code Playgroud)

虽然执行LinkedBlockingQueue你有两个锁:put和take.并且因为size()它使用AtomicInteger所以不需要锁.

所以我的问题是:为什么这个实现在并发包中 - ArrayBlockingQueue真的是并发的?

java api concurrency multithreading blockingqueue

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

关于ConcurrentHashMap javadoc的说明

我对以下引用的最后一点不太清楚:

检索操作(包括get)通常不会阻塞,因此可能与更新操作(包括put和remove)重叠.检索反映了最近完成的更新操作的结果.对于诸如putAll和clear之类的聚合操作,并发检索可能反映仅插入或删除某些条目.

为什么只有一些条目?

java concurrency map

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