在java日志文件中$$$视图是什么意思?

时间:2016-10-03 09:49:37

标签: java logging jboss cdi

我得到一个包含以下行的堆栈跟踪的异常

my.company.Service$$$view26.myMethod(Unknown Source)

有人可以帮我理解$$$查看部分的含义吗?

我们正在使用JBoss EAP 6.4和Java 8。

由于

1 个答案:

答案 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部分中使用)允许基于注释创建自动记录器类。这些记录器的创建也基于将$词缀添加到类名。

这是一种常见的做法,允许“轻松”(虽然不是很容易)识别生成的类。虽然我无法挖掘出生成的类应该有这个的任何官方要求。