首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从StackTraceElement获取不带包的类名

,可以通过以下步骤实现:

  1. 首先,获取当前线程的堆栈轨迹信息,可以使用Thread类的静态方法currentThread()获取当前线程对象,然后调用getStackTrace()方法获取堆栈轨迹信息数组。
  2. 遍历堆栈轨迹信息数组,找到包含目标类名的StackTraceElement对象。可以通过调用StackTraceElement对象的getClassName()方法获取完整的类名。
  3. 对于获取到的完整类名,可以使用String类的lastIndexOf()方法找到最后一个"."的索引位置,然后使用String类的substring()方法截取最后一个"."之后的部分,即可得到不带包的类名。

以下是一个示例代码:

代码语言:txt
复制
public class ClassNameExample {
    public static void main(String[] args) {
        // 获取当前线程的堆栈轨迹信息
        StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace();

        // 遍历堆栈轨迹信息数组
        for (StackTraceElement element : stackTrace) {
            // 找到包含目标类名的StackTraceElement对象
            if (element.getClassName().contains("目标类名")) {
                // 获取完整的类名
                String fullClassName = element.getClassName();
                
                // 截取不带包的类名
                String className = fullClassName.substring(fullClassName.lastIndexOf(".") + 1);
                
                System.out.println("不带包的类名:" + className);
                break;
            }
        }
    }
}

这样,你就可以通过以上代码从StackTraceElement获取不带包的类名了。

注意:以上示例代码中的"目标类名"需要替换为你实际需要获取的类名。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Android获取栈顶应用方法

有时候我们需要判断栈顶应用是否是我们应用,于是获取栈顶应用需求就出现了。 在android5.0之前,系统提供了一套API可以实现这个功能。...,只能获取自己应用和Launcher桌面的。...当然天无绝人之路,在android5.0之后,android提供了UsageStatsManager方式来获取栈顶应用(并非直接获取,需要处理)。...UsageStatManager是一个使用情况统计管理者,通过它可以获取应用使用情况,通过List集合来记录APP使用情况,通过UsageStats对象可以获取,最后在前台时间,在前台次数等等...下面看下实现案例: ForegroundAppUtils:将获取前台等方法封装成一个工具 public class ForegroundAppUtil { private static final

2.3K30

Android获取、更改小技巧分享(超实用)

前言 小菜因为工作需要,经常需要一套代码修改很多次,虽然不是什么技术活,但是小菜次数多了就有了一点点小技巧分享给大家,下面话不多说了,来一起看看详细介绍吧。 方法如下: 1....把 build.gradle 中 appicationId 替换为新; ? 5. sysn now 同步一下; 6....Edit – Find – Replace in Path… 把旧全部替换为新 7. Build – clean Project 就大功告成了。...百试不爽,大家可以尝试一下,一定要删除.gradle啊~ 再给大家分享一个 android获取手机所有应用 示例代码 public class Main3Activity extends AppCompatActivity...Intent.CATEGORY_LAUNCHER); apps = getPackageManager().queryIntentActivities(intent, 0); //for循环遍历ResolveInfo对象获取

83010

Android5.0以后获取当前activity应用

最近遇到一个需求,其中一个功能就是需要获取当前activity应用,当然执行者也可以是别的应用,并不只是本activity所属应用来回去当前activity。...Android5.0之前是有一个很简单方法,那就是直接调用activityManagergetRunningTasks函数,我们都知道android通过activity栈来管理众多activity...,那么我们获取到这个栈,然后取栈顶元素,就是此时前台activity了,如果要获取对应, ActivityManager activityManager = (ActivityManager)context.getApplicationContext...还有一个方法就是获取当前处于前台进程, public void getTopActivityPackageName(Context context) { final int PROCESS_STATE_TOP...并且前台Activity所在进程名称为,若在manifest中自定义了其他进程,则失效。

1.9K20

Java上传安卓apk安装获取应用名称、、版本、图标等信息

在一个应用下载(应用市场)程序中,除了应用信息显示、文件下载等功能,最重要就是后台管理应用信息功能,在 JavaWeb 程序中,可使用以下代码实现安卓安装文件上传后信息读取功能。...需要导入 AXMLPrinter2.jar ,用于反编译.apk 文件中 AndroidManifest.xml 文件。...apk应用、版本信息及图标 17*/ 18public class AnalysisApk { 19 20 private static final float RADIX_MULTS...(String apkUrl, String logoUrl) { 31 String[] apkInfo = new String[3]; // [0]:版本号;[1]版本名;[2]...源码与 jar 百度云下载(suzj) ---- 内容声明 标题: Java上传安卓apk安装获取应用名称、、版本、图标等信息 链接: https://zixizixi.cn/articles

1.1K30

Android PC端用ADB抓取指定应用日志实现步骤

主要功能: 用于在PC端通过ADB工具抓取指定android真机上运行指定应用调试日志,并生成本地txt文件。...实现步骤: 1、准备ADB调试软件; 2、根据找到进程pid; 新建一个txt文件,重命名为“getpid.bat”,把下面代码复制到该文档中,保存; “com.wtoe.demo”可替换为自己所需要抓取日志...@echo off adb shell “ps | grep com.wtoe.demo” 3、根据找到进程pid; 新建一个txt文件,重命名为“catlog.bat”,把下面代码复制到该文档中...因之前写C/C++打印都是带上文件和行数,自学到android logcat,发现错误时候会直接鼠标点击跳转到相应代码处,遂自己封装下一个函数,能够打印文件,行数并且支持直接鼠标跳转,很方便调试...deep参数可以自定义深度,比如 1 代表上一个方法调用处,但是有时候可能有问题,不带深度打印目前没有发现问题。

1.7K40

SpringApplication对象是如何构建? SpringBoot源码(八)

if ("main".equals(stackTraceElement.getMethodName())) { // 那么就返回stackTraceElement记录即包含main函数...= null) { return result; } // 若缓存中无记录,则去spring.factories配置文件中获取 try { // 这里加载所有jar中包含"MATF-INF...思考1: 这里为啥要一次性spring.factories配置文件中获取所有的扩展放入缓存中呢?而不是每次都是根据SPI接口去spring.factories配置文件中获取呢?...其中spring.factories中获取ApplicationContextInitializer接口对应所有SPI扩展实现如下图所示: [1712c91d81a89901?...w=713&h=199&f=png&s=21757] 4.3 实例化spring.factories中加载SPI扩展 前面spring.factories中获取到ApplicationContextInitializer

85800
领券