Java中同一个类下一个方法怎样访问另一个方法下的变量

我的定义如下
public class SearchDaoImpl extends HibernateDaoSupport implements SearchDao{
public List search_sim(String condition){
try{
String sql;
//根据输入框中的查询条件
// List list = getHibernateTemplate().find("from Content where keyWord = ?",str);
Session session=getHibernateTemplate().getSessionFactory().openSession();
Transaction ts=session.beginTransaction();
Query query=session.createQuery("from Content where keyWord = ?");
query.setParameter(0,condition);
sql="keyWord='"+condition+"'";
List list=query.list();
ts.commit();
session.close();
System.out.println(sql);
session=null;
return list;

}catch(Exception e){
e.printStackTrace();
return null;

}
}
public String getsql(){
String sql;

return null;

}

}

在后面这个getsql()方法里怎么访问前面那个方法public List search_sim(String condition)中的String类型的sql呢?
类中还有多个像public List search_sim(String condition)的其它方法,每个方法都会得到一个不同的sql。在下面的那个getsql()方法里获取不同方法里的sql.

在java中,一个方法中式不能够访问另一个方法中定义的变量的!
为什么?其实在java中,变量按照作用域主要分为两种:全局变量和具备变量!全局变量一般都是类的属性!局部变量一般都是写在方法中或者写在其他语句块中(如:循环语句块和switch语句块等)。
作为局部变量,他的作用域(或者说使用范围)仅仅只是在于,当前变量被定义的位置一直到这个变量所在语句块中的最后(也就是"}"所在位置)。
也就是说,在一个方法中定义的变量,仅仅只能在这个方法中才能够正常使用!在别的方法中是无法直接使用的!
所以,就你这个问题,给你一个解决办法,将这个变量设成一个属性!让这个变量成为一个全局的存在!
这样的话,你就能在这个类的方法中使用这个变量了!
友情提示一下:如果想直接在main函数中用(实际上也就是在使用的static修饰的方法中用),这个属性页必须被定义成static的!关于这个,你可以去看看static的用法!

大概知道你的意思了,你是想在不同的方法中对sql进行包装,然后通过统一的方式获得包装后的sql语句,而且这些sql语句之间还不能有影响!
其实,想法虽然是好的,但是实现起来可能会比较有难度!你去思考一个问题,你在getsql()方法中,如何设定逻辑,才能够自由的去调用你所写的public List search_sim(String condition)的其它方法?
而且,假使你能够实现,在一个方法中调用其他方法中定义的变量还是不现实的!要么把这个变量定义为全局的,要么把这个sql语句干脆设定为这个方法的返回值!
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-08

将那个方法放入另一个方法传入参数。

例如:输出0~9


public class Test1 {

public void print(int num){
System.out.println(num);
}

public void num(){
for (int i = 0; i < 10; i++) {
print(i);
}
}
public static void main(String[] args) {
new Test1().num();
}
}

第2个回答  2010-06-14
你让public List search_sim这个方法返回那个sql。。然后getsql()这个方法调用那个方法不就得到你想要的sql了吗。。其他方法也一样返回sql。。你想要哪个就调用哪个撒。。
第3个回答  2010-06-14
定义为全局变量,然后把方法中的值赋给全局变量
第4个回答  2010-06-14
一句通俗的话是:变量只能在它被声明的那个大括号里起作用,如果你真的要用,必须把它提出来,在总的类里边声明

java中同一个包下面的一个类能不能调用另一个类里面有参数的方法
如果另一个类中的那个方法是私有的话,就不能直接调用到,如果是其他类型的话看情况,如果是静态的(static)话,直接用类名可以调用到,如果是非静态的,就需要利用另一个类的实例(也就是用那个类生成的对象)来调用。如下:class A{ public static void a(){} public void b(){} } public ...

在java中,同一个包中,怎么引用另一包中的变量
这个问题没有遇见过,按道理讲,同一个类里面的一个方法访问另一个方法里的变量,另一个方法会有一个返回值的,不会出现你这种情况的啊。

Java两个函数里的变量如何相互调用,在同一个类里
如果要调用的是类成员变量,那么类中的所有方法都可以访问、修改它们。如果要调用的是方法中的局部变量,那么只能通过返回值或参数传递,例如fun1中的变量a要传递到fun2,就在fun1中调用fun2,并传递a作为fun2的参数。

JAVA一个包里建立好两个类,一个类如何调用另一类的里的数据?
1、先在eclipse中创建一个Java工程文件。并在src下创建demo包,在demo包下创建类DemoClass。2、接下来在DemoClass类中添加一个静态属性和静态方法。被static修饰的属性或方法就是静态的。3、对于静态方法的调用,可以使用调用非静态方法的方式去调用,即创建一个类的对象,然后再调用静态方法。4、编辑好...

如何在Java的一个Class里调用另一个Class里的变量的值?
int var;} A 中调用 var 如果var对于不同的B对象值是不同的。Class A { public void visit () { B ob; ob.getVar (); } } Class B { private int var;public int getVar () { return var; } } 如果该变量对于所有的B对象都是一样的。Class A { public void visit () { B....

java在一个类里如何在一个方法得到另一个方法的对象??
首先,你问的就不对,方法没有对象,类才有对象,你的意思应该是如果在一个方法里使用另一个类的方法。那么你需要2个步骤,第一,如果这2个类不是在同一个包下,那么你需要把另一个类,假设是B类,import进来,如果在同一个包下,则不用import 第二,在你的A类中的方法里,用new 关键字来...

android同一个工程下不同java里的变量怎么相互调用
一般不带你这么直接调用的吧,你看看javaBean就知道了,为什么javaBean里面的属性都是private的类型,外部调用的话需要统一一个set、get方法这样保证数据的安全性如果实在需要用的话你可以把a变量的数值放到request范围里,然后你直接从request里面取就行了(如果上面的这些class类只是你写着玩的,那就无所谓...

java中同一个包内一个类调用另一个类中构造函数的问题
javac -d . UserUtil.java。(此时,UserUtil.class会在bean文件夹里)但更难的问题没有解决:java UserUtil 执行时,出错,因为此时程序要加载mysql的驱动jar包,但dos下找不到。。。网上搜索过,没有找到能在dos下带着conn-mysql-jar运行的例子。如果一定要在dos下运行,等待高手指点吧。建议在ec...

Java中一个方法怎么调用另一个方法
在同一个类里可以直接调用,不同的类先导过那个类来,然后new一个对象,对象.方法 调用。

java同一个类中的方法调用?
1、如果一个类中只有一个名称为a的方法,那么我们可以直接调用即可,如下图所示 2、以下是我们直接使用传统的方式直接调用这个类中的a方法。3、但是如果一个类中,拥有多个方法名一样的方法,那么我们使用反射机制,要如何去调用这些方法呢,如下图所示,一个类中有多个方法名相同的方法。4、可能已经...

相似回答