我有一个包含两个软件包的库项目,分别是package1和package2,分别是class1和class2.class1有一些公共方法暴露给最终用户.我想在class1中添加一些只有class2才能访问的实用方法.我搜索了很多,但我找不到任何访问修饰符的方法只授予相同项目的不同包的访问权限.
有机会以任何方式实现它吗?
更新(代码示例):
package1中的Class1:
package com.example.package1;
public class Class1 {
// This method should only be accessed by Class2, cannot made it public for
// every class
void performUtilityOperation() {
// internal utility
}
// other public methods...
}
Run Code Online (Sandbox Code Playgroud)
package2中的class2:
package com.example.package2;
import com.example.package1.*;
public class Class2 {
Class1 class1;
public void setClass1(Class1 class1) {
this.class1 = class1;
}
public void doSomeOperation() {
this.class1.performUtilityOperation(); // here this method is not
// accessible if not public
// do some other operations …Run Code Online (Sandbox Code Playgroud) 我试图在onDraw方法中使用Android Movie类在ImageView中显示动画gif,如下所示:
@Override
protected void onDraw(Canvas canvas) {
canvas.drawColor(Color.TRANSPARENT);
super.onDraw(canvas);
long now = android.os.SystemClock.uptimeMillis();
if (movieStart == 0) {
movieStart = now;
}
movie = getMovieFromGif();
if (movie != null && movie.duration() > 0) {
try {
int relTime = (int) ((now - movieStart) % movie.duration());
movie.setTime(relTime);
float movie_height = convertDpToPixels(movie.height());
float movie_width = convertDpToPixels(movie.width());
float new_movie_height = movie_height;
float new_movie_width = movie_width;
float movie_ratio = movie_width / movie_height;
if (new_movie_width > container_width) {
new_movie_width = container_width;
new_movie_height = new_movie_width …Run Code Online (Sandbox Code Playgroud)