我在我的项目中使用crosswalk作为webview,现在我想为某些目的覆盖替换类。
原班级
org.xwalk.core.internal
imports....
class SslUtil {
public static boolean shouldDenyRequest(int error) {
switch(error) {
case NetError.ERR_CERT_COMMON_NAME_INVALID:
case NetError.ERR_CERT_DATE_INVALID:
case NetError.ERR_CERT_AUTHORITY_INVALID:
case NetError.ERR_CERT_WEAK_SIGNATURE_ALGORITHM:
case NetError.ERR_CERT_WEAK_KEY:
case NetError.ERR_CERT_NAME_CONSTRAINT_VIOLATION:
case NetError.ERR_CERT_VALIDITY_TOO_LONG:
case NetError.ERR_CERT_CONTAINS_ERRORS:
case NetError.ERR_CERT_REVOKED:
case NetError.ERR_CERT_INVALID:
case NetError.ERR_SSL_WEAK_SERVER_EPHEMERAL_DH_KEY:
case NetError.ERR_SSL_PINNED_KEY_NOT_IN_CERT_CHAIN:
return true;
default:
break;
}
return false;
}
}
现在我要做的是通过复制包名和classe nam来替换它。
org.xwalk.core.internal
imports....
class SslUtil {
public static boolean shouldDenyRequest(int error) {
//I'll do my custom handling of error
return false;
}
}
当我刚刚使用Android Studio运行时,这是可能的,因为IDE会询问我应该使用什么SslUtil。但是由于重复的文件
,我无法生成签名的APK(org.xwalk.core.internal.SslUtil)
现在有一种方法可以从我的依赖项中排除这个特定文件并使用我创建的文件吗?或者这是不可能的?
答案 0 :(得分:-1)
如果你要覆盖一个类,为什么你希望它与该类在同一个包中。因为它是你个人的压倒一切,所以请把它放在你的包裹里。
your.own.package.here
imports....
class SslUtilNew extends SslUtil {
public static boolean shouldDenyRequest(int error) {
// Call Super if you want to otherwise use your own method
//I'll do my custom handling of error
return false;
}
}
然后当您想要使用它时,请使用您的包导入一个。您仍然可以继续使用其他旧类方法,并仅使用您覆盖的新方法。