为什么错误此代码:
Folly
错误:
layout.setConstraint(andy, new Rectangle(new Point(10, 10), andy.getPreferredSize()));
我不明白该错误。 请帮助调试错误代码。
The constructor Rectangle(Point, Dimension) is undefined
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The constructor Rectangle(Point, Dimension) is undefined
The constructor Rectangle(Point, Dimension) is undefined
The constructor Rectangle(Point, Dimension) is undefined
at testdot.testdot.createDiagram(testdot.java:66)
at testdot.testdot.run(testdot.java:23)
at testdot.testdot.main(testdot.java:92)
答案 0 :(得分:2)
您在代码中执行了3次(或类似操作)
use strict;
use diagnostics;
my @nums = qw/ 1 23 5432 45 /;
my $max_length = shift reverse sort map {1 + log($_)/log(10)} @nums;
printf "%d\n", $max_length;
它不是可编译的Java。如编译错误消息所述:
Experimental shift on scalar is now forbidden at - line 5, near "@nums;"
为什么这么说?毕竟, new Rectangle(new Point(10, 10), andy.getPreferredSize()));
(javadoc)中有一个 constructor Rectangle(Point, Dimension) is undefined
构造函数。
让我们看看实际的类型。
Rectangle(Point, Dimension)
。好吧。java.awt.Rectangle
实例的方法调用的结果。嗯如果您查看java.awt.Point
的文档,将会发现IFigure
方法返回一个IFigure
对象,而不是getPreferredSize
。
基本上,您是在混合使用SWT和AWT类型。
org.eclipse.draw2d.geometry.Dimension
那是错的。由于(显然)您是在为Eclipse / SWT平台编程,因此您应该专门导入和使用SWT类。将SWT与AWT(或Swing或JavaFX或Android)api混合使用会导致问题。