所以,我有这行代码
ScreenCapture.main(String[].class);
在文件“1”中,它链接到此文件“2”
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.Rectangle;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.*;
import javax.imageio.ImageIO;
class ScreenCapture
{
public static void main (String args[]) throws
AWTException, IOException
{
System.out.print(".");
BufferedImage screencapture = new Robot().createScreenCapture(
new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()) );
Expo.delay(2000);
System.out.print(".");
File file = new File("Agreement.jpg");
ImageIO.write(screencapture, "jpg", file);
Expo.delay(4000);
System.out.print(".");
}
}
这是我在文件1中得到的错误
WarandPeace.java:21: error: incompatible types: Class<String[]> cannot be
converted to String[]
我的最终目标是在用户完成文件1中的特定操作时截取屏幕截图。我有截屏文件工作(文件2),但无论我做什么,该错误仍然令人讨厌(文件1)。任何解决方案?
答案 0 :(得分:4)
您的错误不言自明。 String数组类与String数组本身不同。但更重要的是,如果您希望其他代码使用它,那么代码不应该是静态主方法,因为main方法应该用于启动程序,而不是用于实用程序方法。学习正确的OOPS概念,创建类并调用适当对象的非静态方法。如果这是我的代码,我会创建一个方法来捕获屏幕并让它返回一个BufferedImage。然后其他代码可以决定如何处理BufferedImage。
答案 1 :(得分:1)
文件2中的方法具有以下签名:
public static void main (String args[]) throws
AWTException, IOException
你需要匹配它。你可以做到,例如这样:
ScreenCapture.main(new String[] {"param1", "param2"});
或者,因为您根本没有使用参数,所以您可以:
ScreenCapture.main(new String[] {});
虽然我同意the other的回答......
答案 2 :(得分:0)
修改&#34;文件1&#34;。
ScreenCapture.main(String[].class);
应该是
String[] args = { "one" }; // <- for one.
或
String[] args = new String[0]; // <- for none.
然后
ScreenCapture.main(args);
main()
采用String
(s)数组(不是Class<String[]>
的类型String[]
)。
最后,在一行 -
ScreenCapture.main(new String[] {"one", "two"});