Scala中调用Java方法注意点


1. 定义两个存在父子关系的Java类 

/**
 * @Auther: 123
 * @Date: 2021/6/11 11:00
 * @Description: 测试scala调用java类中继承的父类方法
 */
public class JSON {
    public static String parser(String str){
        return "static JSON.parser: "+str;
    }
    public  String format(String str){
        return "JSON.format: "+str;
    }
}
/**
 * @Auther: 123
 * @Date: 2021/6/11 11:02
 * @Description:
 */
public class JSONObject extends JSON{
    public static String childParser(String str){
        return "static JSONObject.childParser: "+str;
    }

    public  String childFormat(String str){
        return "JSONObject.childFormat: "+str;
    }
   // 不同点:java中调用静态方法可以使用对象或者类
    public static void main(String[] args) {
        JSONObject object = new JSONObject();
        System.out.println(object.childFormat("sssss"));
        System.out.println(object.childParser("sssss"));
     System.out.println(JSONObject.childParser("sssss"));
} }

 

2. Scala中使用Java方法

 
/**
* 测试调用java代码
*/
def testJavaCode = {
var mainDo = new MainC()
mainDo.doWork(" my work ")

val str = " zhangsanlisiwangwuzholiu "
val json = new JSON()
val jsonObject = new JSONObject()

// 尝试调用JSONObject中继承JSON的方法
println(""+jsonObject.format(str))
println(""+JSONObject.parser(str)) // 编译不过

// 尝试调用JSON的方法
println(""+json.format(str))
println(""+JSON.parser(str))

// 尝试调用JSONObject中自己的方法
println(""+jsonObject.childFormat(str))
println(""+JSONObject.childParser(str))

/**
* 总结:
* 1. scala中调用java中静态方法只能使用当前类不能使用对象
* 2. java中静态方法尽管是public在scala中都无法使用子类调用
* 3. java中非静态子类可继承方法在scala中可以使用子类对象调用
*/
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM