我有以下代码:
public class MyEvent implements org.apache.camel.Processor
{
static private final Map<Long, String> obj = new ConcurrentHashMap<Long, String>();
@PostConstruct
public void postConstruct()
{
for (Object object : cacheList)
{
obj.put(object.getId(), object.getName());
}
}
@Override
public void process(Exchange exchange) throws Exception
{
synchronized (obj)
{
String value = obj.get(number);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有时在开始时,我有一个NullPointerException在这一行:
String value = obj.get(number);
Run Code Online (Sandbox Code Playgroud)
我的问题是:为什么我会收到此错误,如何解决?
Java版本1.6.0_32
如何在子类中将超类的实例方法重写为静态?我认为这是不可能的,但是有任何间接方式吗?
public class A {
public void test(){
System.out.println("");
}
}
public class B extends A{
public static void test(){//test() in B cannot override test() in A
//overriding method is static
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个测试应用程序,其中一个类存储一个地图,一个按钮调用该类的方法:
Map<Object, Object> weakMap = new WeakHashMap<Object, Object>();
Run Code Online (Sandbox Code Playgroud)
按钮执行此操作:
public void fillWeakHashMap(int size) {
List<String> createObjects = (List<String>) createObject(size);
for (Object ob : createObjects) {
weakMap.put(ob, ob);
}
}
Run Code Online (Sandbox Code Playgroud)
所以带有地图的主类生活,但我放在它上面的对象是用不同的方法创建的,因为WeakHashMap我认为退出方法后fillWeakHashMap,GC中的键/对象将被清除.
我打开VisualVM-> VisualGC并单击Monitor-> PerformGC 10次,旧空间几乎已满,这意味着GC不清除这些对象.那么我做错了什么?
我正在尝试创建一个程序,允许用户在输入数组的行和列,输入数组内的值以及输出数组之间进行选择.一切正常,直到我尝试输出数组,它总是输出0.如何正确打印值?
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
char ans='y';
int column=0, row=0;
do{
char c = menu(sc);
int array[][] = new int [row] [column];
switch (Character.toLowerCase(c))
{
case 'a': System.out.print("Enter row size ");
row=sc.nextInt();
System.out.print("Enter column size ");
column=sc.nextInt();
System.out.print("Row and Column "+row+" "+column);
break;
case 'b': for(int r=0;r<row;r++)
{
for(int col=0;col<column;col++)
{
System.out.print("Enter value for row "+r+" column "+col+": ");
array[r][col]=sc.nextInt();
}
}
break;
case 'c': for(int r=0; r<array.length; r++)
{
for(int col=0; col<array[r].length; …Run Code Online (Sandbox Code Playgroud) 我正在尝试Java接口,以下代码给出了错误.
在类中,构造函数将Map作为参数
public class ClassA{
private Map<String,InterfaceA> testMap;
ClassA(Map<String,InterfaceA> testMap){
this.testMap=testMap;
}
}
public class ClassB{
ClassA testA = new ClassA(new HashMap<String,ImplmntsInterfaceA>); //1st declaration
Map<String,ImplmntsInterfaceA> testMap=new HashMap<String,ImplmntsInterfaceA>(); //Second declaration
ClassA testB = new ClassA(testMap);
}
Run Code Online (Sandbox Code Playgroud)
ImplmntsInterfaceA是一个实现的类InterfaceA.
这两个ClassA声明都给出了错误,首先建议将Map构造函数更改为,HashMap然后再次要求将InterfaceA泛型替换为ImplmntsInterfaceA.
有人可以帮忙解决它为什么不起作用?
谢谢 :)
我正在将我direcList分成两个子列表firstDirec,secondtDirec当New direction发现一个特殊的字符串时.
然后我通过不将它们添加到新的ArrayLists 来过滤列表中的特定字符串timeListFirst and timeListSecond.一切正常firstDirec,并且元素没有添加到timeListFirst,但我secondtDirec在这个位置的列表面临问题:
if (!(mergeLine.equals(otherDirection))
Run Code Online (Sandbox Code Playgroud)
因为在这个位置mergeLine等于"Ravensbusch",所以是 otherDirection.尽管如此,这个字符串正被添加到timeListSecond.有人可以解释我的错误吗?
mergeLine值:

otherDirection值:

for (String keyLine : direcList) {
if (keyLine.startsWith("New direction")) {
int index = direcList.indexOf(keyLine);
// direcArray.remove(index);
List<String> firstDirec = direcList.subList(0, index);
List<String> secondtDirec = direcList.subList(index,
direcList.size() - 1); // This part wih New
// Direction.
ArrayList<String> timeListFirst = new ArrayList<String>();
for (String mergeLine …Run Code Online (Sandbox Code Playgroud) 分配:
编写一个名为Hypo的方法,该方法计算直角三角形的斜边。此方法接受两个表示三角形边的双精度值。Hypo方法计算并在屏幕上显示直角三角形第3边的值。方法main()应该使用输入框从用户读取两个双精度值,然后调用Hypo,将这两个值作为参数发送给它。然后Hypo()将结果在输出框中打印到屏幕上。main()和Hypo()都位于同一类中,名为A2。
这是我的代码。没有错误,但是没有任何输出,您能帮我吗?
import java.util.Scanner;
import javax.swing.JOptionPane;
public class A2
{
public static void main(String[] args)
{
double height=Double.parseDouble(JOptionPane.showInputDialog("Enter 1st side of triangle: "));
double base=Double.parseDouble(JOptionPane.showInputDialog("Enter 2nd side of triangle: "));
RightTriangle newTriangle = new RightTriangle(height, base);
newTriangle.getHypotenuse();
double hypotenuse = newTriangle.getHypotenuse();
JOptionPane.showMessageDialog(null,hypotenuse);
}
public double height;
public double base;
public final double hypotenuse = Math.sqrt(Math.pow(height, 2) + Math.pow(base, 2));
public A2(double triHeight, double triBase)
{
height = triHeight;
base = triBase;
}
public double getHypotenuse()
{
return hypotenuse;
} …Run Code Online (Sandbox Code Playgroud) 我试图从列表中删除对象,我得到以下异常:
failure:java.util.ConcurrentModificationException null
Run Code Online (Sandbox Code Playgroud)
这就是我尝试从列表中删除对象的方法:
private List<testVO> removeDuplicateEntries(List<testVO> sessionList,List<testVO> dbList){
for (Iterator<testVO> dbIterator = dbList.listIterator(); dbIterator.hasNext(); ) {
testVO voDB = dbIterator.next();
for (Iterator<testVO> sessionIterator = sessionList.iterator(); sessionIterator.hasNext();) {
testVO voSession = (testVO) sessionIterator.next();
if(voDB.getQuestionID().intValue() == voSession.getQuestionID().intValue()){
//remove the object from sesion list
sessionIterator.remove();
//Add the object from DB to session list
sessionList.add(voDB);
}
}
}
return sessionList;
}
Run Code Online (Sandbox Code Playgroud)
我想删除当前的副本sessionList并添加来自的重复项dbList.
我是 HTML5 中画布的新学习者,目前正在尝试为孩子们制作一个简单的画线项目。我将背景图像插入画布中,并尝试提出一种徒手画线的方法,但没有结果。有人可以帮我修复下面的代码吗?之前谢谢大家。
<!DOCTYPE HTML>
<html>
<script type="text/javascript">
var canvas, ctx, flag = false,
prevX = 0,
currX = 0,
prevY = 0,
currY = 0,
dot_flag = false;
var x = "black",
y = 2;
function init() {
canvas = document.getElementById('can');
ctx = canvas.getContext("2d");
w = canvas.width;
h = canvas.height;
canvas.addEventListener("mousemove", function (e) {
findxy('move', e)
}, false);
canvas.addEventListener("mousedown", function (e) {
findxy('down', e)
}, false);
canvas.addEventListener("mouseup", function (e) {
findxy('up', e)
}, false);
canvas.addEventListener("mouseout", function (e) {
findxy('out', …Run Code Online (Sandbox Code Playgroud) 我有这个字符串.我试图从每个条目拉出接口,nameif和安全级别.
!
interface OUTSIDE
nameif OUTSIDE
security-level 0
ip address 47.237.34.219 255.255.255.248 standby 47.237.34.220
authentication key eigrp 20 ***** key-id 20
authentication mode eigrp 20 md5
!
interface QA
nameif QA
security-level 100
ip address 47.237.34.89 255.255.255.248 standby 47.237.34.90
authentication key eigrp 20 ***** key-id 20
authentication mode eigrp 20 md5
!
interface QASUSEENCEXT
nameif QASUSEENCEXT
security-level 93
ip address 47.77.146.1 255.255.254.0 standby 47.77.146.2
!
interface QASUSEENCSNSTV
nameif QASUSEENCSNSTV
security-level 80
ip address 47.77.140.1 255.255.254.0 standby 47.77.140.2
!
interface QAWINSECDB …Run Code Online (Sandbox Code Playgroud) 我读过一些文章说
上述哪一项是正确的?翻译到底是如何发生的,什么是本机代码?是汇编语言代码吗?
我需要一个解决方案将String转换为字节数组而不改变如下:
输入:
String s="Test";
Run Code Online (Sandbox Code Playgroud)
输出:
String s="Test";
byte[] b="Test";
Run Code Online (Sandbox Code Playgroud)
我用的时候
s.getBytes();
Run Code Online (Sandbox Code Playgroud)
然后答复是
"[B@428b76b8"
Run Code Online (Sandbox Code Playgroud)
但我希望得到答复
"Test"
Run Code Online (Sandbox Code Playgroud) java ×11
android ×1
arraylist ×1
arrays ×1
canvas ×1
constructor ×1
html ×1
html5-canvas ×1
interface ×1
javascript ×1
jvm ×1
listiterator ×1
regex ×1
spring ×1
string ×1
weakhashmap ×1