动态创建变量,java变量的数据类型
我们知道变量的数据类型不同,但它们的名称是哪种数据类型?动态创建变量,java变量的数据类型,java,variables,Java,Variables,我们知道变量的数据类型不同,但它们的名称是哪种数据类型? 看起来它们是字符串,但如果它们是字符串,则应允许: int i=6; String [] arr+i; …因为我们可以将int添加到字符串 那么,如果这些不是字符串,那么它们是什么呢? 如果我们想动态地创建变量名,我们如何才能创建它呢? 动态的意思是,每当用户单击特定的JComponent,就会创建一个新变量,如: int i=0; //on first click String str+i; ///str0 i++; ///on 2n
看起来它们是
字符串
,但如果它们是字符串
,则应允许:
int i=6;
String [] arr+i;
…因为我们可以将int
添加到字符串
那么,如果这些不是字符串,那么它们是什么呢?
如果我们想动态地创建变量名,我们如何才能创建它呢?
动态的意思是,每当用户单击特定的JComponent
,就会创建一个新变量,如:
int i=0;
//on first click
String str+i; ///str0
i++;
///on 2nd click
String str+i; ////str1
///i++;
我该怎么做呢?Java不是这样工作的。其他语言也有,但Java不是其中之一。不能动态操作变量的名称,因为它们在编译时是固定的。然而,在一些解释脚本语言中,这样的事情是可能的
更准确地说,如果它们被固定为任何东西,则它们在编译时被固定。如果java不是在调试模式下编译的,那么变量的名称将完全停止。它们只是成为内存位置的地址
有关详细信息,请参见:Java不能以这种方式工作。其他语言也有,但Java不是其中之一。不能动态操作变量的名称,因为它们在编译时是固定的。然而,在一些解释脚本语言中,这样的事情是可能的
更准确地说,如果它们被固定为任何东西,则它们在编译时被固定。如果java不是在调试模式下编译的,那么变量的名称将完全停止。它们只是成为内存位置的地址
有关详细信息,请参见此:Java标识符不是任何类型,也肯定不是字符串。在java中不能这样做,而是使用数据结构来使用这些值,如ArrayList
,并将n字符串
存储在数据结构的n
索引中,如下所示:
ArrayList<String> strings= new ArrayList<String>(); // Create a new empty List
strings.add(index, string); //add string at index position of the List; can be replaced with strings.add(string) if the strings are being sequentially added
ArrayList strings=new ArrayList();//创建一个新的空列表
添加(索引,字符串)//在列表的索引位置添加字符串;可以替换为字符串。如果按顺序添加字符串,则添加(字符串)
Java标识符不是任何类型,绝对不是字符串。在java中不能这样做,而是使用数据结构来使用这些值,如ArrayList
,并将n字符串
存储在数据结构的n
索引中,如下所示:
ArrayList<String> strings= new ArrayList<String>(); // Create a new empty List
strings.add(index, string); //add string at index position of the List; can be replaced with strings.add(string) if the strings are being sequentially added
ArrayList strings=new ArrayList();//创建一个新的空列表
添加(索引,字符串)//在列表的索引位置添加字符串;可以替换为字符串。如果按顺序添加字符串,则添加(字符串)
变量名没有数据类型。它们只是参考资料。它们不是字符串
,也不是整数
,它们只是名称。不能使用从另一个变量的名称派生的名称动态声明变量,Java不能以这种方式工作。变量名称没有数据类型。它们只是参考资料。它们不是字符串
,也不是整数
,它们只是名称。您不能使用从另一个变量的名称派生的名称动态声明变量,Java不能以这种方式工作。您不能在Java中创建动态变量,因为Java不是脚本语言。您需要在源代码中创建变量。但是Java提供了其他方法来实现这一点。
为此,您可以使用数组
或映射
等
Map<String, String> map= new HashMap<>();
int i=0;
while(true) {
// you can use whatever condition you need
details.put("key" + i, "val: "+i);
i++
// some condition to break the loop
}
Map Map=newhashmap();
int i=0;
while(true){
//你可以使用任何你需要的条件
详细信息。put(“键”+i,“值”+i);
我++
//打破循环的一些条件
}
您不能在Java中创建动态变量,因为Java不是脚本语言。您需要在源代码中创建变量。但是Java提供了其他方法来实现这一点。
为此,您可以使用数组
或映射
等
Map<String, String> map= new HashMap<>();
int i=0;
while(true) {
// you can use whatever condition you need
details.put("key" + i, "val: "+i);
i++
// some condition to break the loop
}
Map Map=newhashmap();
int i=0;
while(true){
//你可以使用任何你需要的条件
详细信息。put(“键”+i,“值”+i);
我++
//打破循环的一些条件
}
首先,变量可以分为两类。原语(标准)类型,如int、float、double、char、boolean、byte。。。和非原语(用户定义)类型,如字符串、整数、浮点、双精度。字符串类型属于非原语类,它是由java.langAPI提供的一个类,因此当您创建一个字符串变量时,实际上是在创建一个对象EX String str;str是一个对象,它也可以声明为String str=new String()
因此,string类由可能有助于实现目标的助手方法组成,您也可以按如下方式使用字符串的串联/连接:
class Demo{
String str;
static int i;
JButton but=new JButton("click me!");
.....
public static void actionPeaformed(ActionEvent e){
Object source=e.getSource();
str="msg";
if(source==but){
String newStr;
newStr=str+i;
System.out.println(newStr);
}
}
}
其中str可能包含一些消息/文本,例如每次单击时的标签/其他位置。首先,变量可分为两类。原语(标准)类型,如int、float、double、char、boolean、byte。。。和非原语(用户定义)类型,如字符串、整数、浮点、双精度。字符串类型属于非原语类,它是由java.langAPI提供的一个类,因此当您创建一个字符串变量时,实际上是在创建一个对象EX String str;str是一个对象,它也可以声明为String str=new String()
CONSIDER THIS:
因此,string类由可能有助于实现目标的助手方法组成,您也可以按如下方式使用字符串的串联/连接:
class Demo{
String str;
static int i;
JButton but=new JButton("click me!");
.....
public static void actionPeaformed(ActionEvent e){
Object source=e.getSource();
str="msg";
if(source==but){
String newStr;
newStr=str+i;
System.out.println(newStr);
}
}
}
其中str可能包含一些消息/文本,例如每次单击时来自标签/其他位置的消息/文本
CONSIDER THIS:
公开课考试{
public Test() {
}
public static void main(String[] args) {
// GenericType<Integer> intObj;//creates a generic type for integers
//String type
GenericType<String> strObj=new GenericType<String>("My data");
System.out.println("Value is " +strObj.getValue());
}
}
class GenericType<GT>{
GT obT;
GenericType(GT o){
obT=o;
}
GT getValue(){
return obT;
}
void showType(){
System.out.println("Type of GT is " +obT.getClass().getName());
}
}
公共测试(){
}
公共静态void main(字符串[]args){
//GenericType intObj;//为整数创建泛型类型
//字符串类型
GenericType strObj=新的GenericType(“我的数据”);
System.out.println(“值为”+strObj.getValue());
}
}
类泛型{
GT obT;
通用类型(GTO){
obT=o;
}
GT getValue(){
返回