Tag: 变量

使用Java中的局部变量隐藏实例变量

我已经读过“如果存在另一个具有相同名称并且范围更接近的变量,则变量被遮蔽”。 我发现这个Point类以构造函数为例: public class Point { public int x = 0; public int y = 0; public Point(int x, int y) { x = x; y = y; } } 然后我在下面的CreateObjectDemo类中创建了Point类的对象,并打印了变量x的值。 public class CreateObjectDemo { public static void main(String[] args) { Point originOne = new Point(23, 94); System.out.println(originOne.x); } } 运行编译器后,它打印0.但为什么不打印23? 我认为构造函数中的“x = x”就像“23 = […]

如何确定字符串中包含的数据类型?

我有一个接受String参数的方法。 String可以包含整数,long,double,boolean或只是普通的旧字符和数字。 我需要一种简单的方法来确定字符串的类型。 一种方法可能是拥有一堆try catch块并尝试将其解析为每种类型,如果抛出exception,那么它可能不是那种数据类型。 这似乎是错误的,因为它是一种启发式方法,而不是一种确定性方案。

将变量从Java传递给Shell脚本

我正在尝试从Java代码运行shell脚本。 目前我在脚本中手动提供数据,但我希望能够从运行脚本的Java代码中提供变量。 这是Java代码和脚本: public static void main(String[] args) { try { ProcessBuilder pb = new ProcessBuilder( “/home/najib/upload.sh”); Process p = pb.start(); p.waitFor(); System.out.println(“Script executed successfully”); } catch (Exception e) { e.printStackTrace(); } } shell代码: #!/bin/bash /usr/local/virtuoso-opensource/bin/isql 1111 dba dba exec=”set AUTOCOMMIT MANUAL;”& /usr/local/virtuoso-opensource/bin/isql 1111 dba dba exec=”delete from DB.DBA.load_list;”& /usr/local/virtuoso-opensource/bin/isql 1111 dba dba exec=”SPARQL CREATE […]

我可以在Citrus静态响应适配器有效负载中使用Citrus变量吗?

我正在使用静态响应端点适配器来返回从资源文件中获取的模拟服务响应: private void setAdapterResponse(StaticResponseEndpointAdapter adapter, String response) throws IOException{ URL url = Resources.getResource(response); adapter.setMessagePayload(Resources.toString(url, Charsets.UTF_8)); } @Autowired private Endpoint helloSoapClient; @Autowired private WebServiceServer helloMockService; @Autowired private StaticResponseEndpointAdapter helloResponseAdapter; @CitrusTest(name = “HELLO_WORLD”) public void sendAndReceiveMessage() throws IOException{ variable(“randomRequestIdentifier”, “9978111203033”); variable(“constantDate”, “201301010000”); setAdapterResponse(helloResponseAdapter, “templates/helloResponses/ReqIdGenerator.xml”); send(helloSoapClient) .payload(new ClassPathResource(“templates/helloRequests/HelloRequest028.xml”)); receive(helloSoapClient) .payload(new ClassPathResource(“templates/helloResponses/HelloResponse028.xml”)); } private void setAdapterResponse(StaticResponseEndpointAdapter adapter, String response) […]

使用reflection加载类,然后在运行时编辑变量

好吧,所以我有一个java文件正在加载另一个类,我希望java文件能够编辑和读取正在运行的类中的变量。 例如:我有一个按钮,按下它时设置一个变量(这是类文件)。 我希望加载此类的java文件能够看到变量的新值读取它,设置它并执行所需的任何操作。 我希望设置的新值显示在正在运行的java类中。 这是我到目前为止所尝试的,但是当我尝试编辑像获取baseX这样的值时,它不会出现在正在运行的类上。 此外,当我在运行类上执行操作时,baseX值应该更改,但是当我更改它们时,东西不会打印到屏幕上。 就好像reflection无法在运行时读取内容。 那是什么? Class c = Class.forName(“Client”); for (Method m : c.getMethods()) { if (m.getName().contentEquals(“main”)) { Object[] passedArgs = { args }; m.invoke(null, passedArgs); } } Object instance = c.newInstance(); Field baseX = c.getField(“baseX”); Field loggedIn = c.getField(“loggedIn”); boolean gotValues = false; while(!gotValues) { boolean loggedin = loggedIn.getBoolean(instance); if(loggedin) { […]

Java.Variable名称长度

在我阅读的文档中,: A variables name can be any legal identifier — an **unlimited-length** sequence of Unicode letters and digits 所以,我创建了这个类: class Test{ public static void main(String args[]) { int i=10; }} 在哪里我 – 它不是我,它的名字长度变量 – 3 000 000 chars 。 大小.java文件~3M。 我尝试编译这个文件: javac Test.java 结果我有Test.class大小Test.class 4 bayts。 现在我的问题是: 它真的尝试,这个名字unlimited-length ? 编译器如何使用长度3000000个字符转换我的变量名称,结果我有这么小的.class文件?

同一范围内同名的局部变量,IDE显示错误,但是当我运行程序时,没有运行时错误结果

我知道在同一范围内声明同名的局部变量是违法的。 我写了这个非常简单的类,是的,IDE确实在int i = 10;旁边显示错误int i = 10; 。 但是当我运行代码时,一切似乎都很好。 public class VariableWithSameName { static void myMethod(int i){ int i = 10; //error: variable i already defined in method } public static void main(String[] args){ } } 只有当我调用myMethod时才会发生运行时错误。 public class VariableWithSameName { static void myMethod(int i){ int i = 10; //error: variable i already defined […]

Java基类引用变量

可以为基类引用变量分配基类对象或派生类对象的地址。 真假? 谁能告诉我一个这意味着什么的例子? 我是Java的新手,正在尝试理解Java的语言特定术语。 谢谢。 我想这个例子就是我在下面写的代码: public class B extends A { A a = new A(); A ab = new B(); } class A { } 我认为既然两个引用变量都是有效的语法(在Eclipse中),那么答案是正确的。

无法在Action侦听器(Jframe)中引用非变量

以下程序的目标是要求用户输入一个电阻值,然后程序将为每个数字输出相应的颜色。 因此,这不包括所有数字。 但是,该程序已经完成,我已经尝试将JFrame作为一个额外的东西,除了我挂了如何在动作监听器中打印相应的颜色。 这行调用了特定的方法,对于3位数字然后继续打印颜色,除了如何将我和我的其余代码合并到我的JFrame和/或ActionListener中。 System.out.println(array3 [i])行; / 在尝试简单地在动作监听器中打印颜色值时,我确实收到错误“无法引用非最终变量”…. 我曾尝试在线查看各种教程,甚至是Java API和指南,但这些教程都无济于事。 总的来说,我似乎并不知道如何将已编写的代码合并到JFrame中,无论这是一个繁琐的过程,我愿意团结一致,并且非常感谢能够解决如何应对这种困境的一些见解。 import java.io.*; import javax.swing.*; //import javax.swing.JFrame; //import javax.swing.JLabel; //import javax.swing.JButton; //import javax.swing.JPanel; //import javax.swing.JTextField; import java.awt.event.*; public class test extends JFrame { public static void main (String [] args) throws IOException { BufferedReader myInput = new BufferedReader (new InputStreamReader (System.in)); //calling variables String input; […]

你能否将一个实例变量声明为构造函数中的参数?

这会有用吗? class Cars{ Cars(int speed, int weight) } 我只想弄清楚构造函数。 如果它像方法一样调用,那么我认为它的工作方式类似于方法。 您可以在调用该方法时使用的方法中创建局部变量,因此我不明白为什么必须在构造函数可以使用它们之前声明实例变量。