我得到一个包含以下行的堆栈跟踪的异常
my.company.Service$$$view26.myMethod(Unknown Source)
有人可以帮我理解$$$查看部分的含义吗?
我们正在使用JBoss EAP 6.4和Java 8。
由于
答案 0 :(得分:1)
美元符号(public class BaseDrawerActivity extends BaseActivity {
@Bind(R.id.drawerLayout)
DrawerLayout drawerLayout;
@Bind(R.id.vNavigation)
NavigationView vNavigation;
@BindDimen(R.dimen.global_menu_avatar_size)
int avatarSize;
@BindString(R.string.user_profile_photo)
String profilePhoto;
//Cannot be bound via Butterknife, hosting view is initialized later (see setupHeader() method)
private ImageView ivMenuUserProfilePhoto;
@Override
public void setContentView(int layoutResID) {
super.setContentViewWithoutInject(R.layout.activity_drawer);
ViewGroup viewGroup = (ViewGroup) findViewById(R.id.flContentRoot);
LayoutInflater.from(this).inflate(layoutResID, viewGroup, true);
bindViews();
setupHeader();
}
@Override
protected void setupToolbar() {
super.setupToolbar();
if (getToolbar() != null) {
getToolbar().setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
drawerLayout.openDrawer(Gravity.LEFT);
}
});
}
}
private void setupHeader() {
View headerView = vNavigation.getHeaderView(0);
ivMenuUserProfilePhoto = (ImageView) headerView.findViewById(R.id.ivMenuUserProfilePhoto);
headerView.findViewById(R.id.vGlobalMenuHeader).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onGlobalMenuHeaderClick(v);
}
});
Picasso.with(this)
.load(profilePhoto)
.placeholder(R.drawable.img_circle_placeholder)
.resize(avatarSize, avatarSize)
.centerCrop()
.transform(new CircleTransformation())
.into(ivMenuUserProfilePhoto);
}
public void onGlobalMenuHeaderClick(final View v) {
drawerLayout.closeDrawer(Gravity.LEFT);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
int[] startingLocation = new int[2];
v.getLocationOnScreen(startingLocation);
startingLocation[0] += v.getWidth() / 2;
UserProfileActivity.startUserProfileFromLocation(startingLocation, BaseDrawerActivity.this);
overridePendingTransition(0, 0);
}
}, 200);
}
}
,一个或多个)表示它是一个生成的类。
CDI(在您使用的EAP 6.4的情况下,Weld 1.x)是使用此模式的“框架”之一。它根据您的类创建代理,以允许拦截装饰和bean注入。所有生成的类都将具有相同的包名和类名,并将附加魔法美元词缀。我的猜测是你遇到了一些CDI功能。
另外一些JBoss日志框架(可能在Weld或其他EAP部分中使用)允许基于注释创建自动记录器类。这些记录器的创建也基于将$
词缀添加到类名。
这是一种常见的做法,允许“轻松”(虽然不是很容易)识别生成的类。虽然我无法挖掘出生成的类应该有这个的任何官方要求。