重写getColumnName()方法报错java.lang.StackOverflowError

我在一个方法里面初始化了一个列名,并添加了列名

columnNames = new Vector();
        columnNames.add("学号");
        columnNames.add("姓名");
        columnNames.add("性别");
        columnNames.add("年龄");
        columnNames.add("籍贯");
        columnNames.add("系别");

因为在JTable需要需显示列名,所以就需要重写继承了AbstractTableModel中的getColumnName方法。

@Override
    public String getColumnName(int column) {
        //return (String) this.columnNames.get(column);
        return this.getColumnName(column);
    }

运行一下,报错:Exception in thread "main" java.lang.StackOverflowError

这就尴尬了啊。首先,我猜测可能是获取列的长度的方法getColumnCount出问题了

@Override
    public int getColumnCount() {
        return this.columnNames.size();
    }

但在控制台输出,结果是等于6。好吧,不是这个问题。还是在return后面的语句找问题吧。

首先在getColumnName方法中的return后面输入this.

看工具给我的提示,发现有columnNames,选择这个再“.”一下发现有get方法,它需要传一个参数,正好是int,于是乎我有了一个大胆的想法

@Override
    public String getColumnName(int column) {
        return (String) this.columnNames.get(column);
    }

OK,写好了,运行一下,列名没毛病的显示出来了。

很开心,解决了问题,顺便写下这篇文章,记录身为Java小白的我的解决问题的思路。??

原文地址:https://www.cnblogs.com/jintangc/p/8541211.html

时间: 2024-08-29 10:57:34

重写getColumnName()方法报错java.lang.StackOverflowError的相关文章

正则表达式Matcher.find报错 java.lang.StackOverflowError解决

在最近一个java项目中使用了正则表达式,抓取网页中的内容,明明很正确的正则表达式,但在Matcher.find时报错了:     public static List<String> findStrs(String regx,String sourceStr){         Pattern pattern = Pattern.compile(regx);         Matcher m = pattern.matcher(sourceStr);         List<Str

Myeclipse8.5导入项目后报错:background indexer crash recovery Java.lang.stackoverflowerror

Myeclipse8.5导入项目后报错:background indexer crash recovery     Java.lang.stackoverflowerror: 原因:  项目的 JRE 包没有正常导入,导致Eclipse不能正常的编译project. 解决方法:项目导入后,选中项目-右键-->Build Path-->Configure Build Path-->Libraries-->删除未正确导入的包-->添加必须的包即可解决.

Android 执行 gson.toJson(object) 报java.lang.StackOverflowError异常

如下面的代码,执行后报java.lang.StackOverflowError错误: MusicSavedInfo musicSavedInfo=new MusicSavedInfo(currentStartTime,openOrCloseFlag,currentDayFlags,currentSelectMusicTitle,currentSelectMusicPath,"1"); String jsonData=gson.toJson(musicSavedInfo); 我手机4.1

struts2 java.lang.StackOverflowError org.apache.struts2.json.JSONWriter

1. 问题描述: 页面通过异步访问action,    action的方法通过map封装数据,struts的result的type设置为json,后台报错 六月 25, 2016 6:54:33 下午 org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [default] in context with path [/msf] threw exception [Fil

异常Exception in thread &quot;AWT-EventQueue-XX&quot; java.lang.StackOverflowError

今天太背了,bug不断,检查到最后都会发现自己脑残了,粗心写错,更悲剧的是写错的时候还不提示错. 刚才有遇到一个问题,抛了这个异常Exception in thread "AWT-EventQueue-XX" java.lang.StackOverflowError XX有好几个值,我遇到了2,7,20,其实他们都是一个错,StackOverflowError,对,就是栈溢出,为什么会栈溢出呢?我遇到的问题是我写了一个方法,又自己去调用自己,造成了递归,而这个递归又停不下来,造成了栈溢

Android java.lang.StackOverflowError at android.view.ViewGroup.drawChild(ViewGroup.java:2666)

做这样一个页面,下面有五个页签,滑动,有数据显示listview,无数据显示动画,开始我看到他们好多东西是相同的,就提取出来,用include包含布局文件: 结果报一下错误: 01-28 11:27:36.593: E/AndroidRuntime(16182): FATAL EXCEPTION: main 01-28 11:27:36.593: E/AndroidRuntime(16182): java.lang.StackOverflowError 01-28 11:27:36.593: E

DRP问题集结(一)-Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory

问题一:  Tomcat无法启动,报错java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory 问题二:[Error]JavaWeb: 严重: Failed to initialize end point associated with ProtocolHandler ["http-bio-8080"] 问题三:The APR based Apache Tomcat Native library which a

关于SimpleCursorAdapter在sqlite数据库中取数据报错 : java.lang.IllegalArgumentException: column &#39;_id&#39; does not exist

_id列不存在 需要创建一个 id列 因为SQLlite数据库 的onCreate方法是在数据库不存在的时候才调用所以我们需要清除一下这个app 的数据 将数据清空 关于SimpleCursorAdapter在sqlite数据库中取数据报错 : java.lang.IllegalArgumentException: column '_id' does not exist

maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener

本篇文章主要介绍了"maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener ",主要涉及到maven web 项目中启动报错java.lang.ClassNotFoundException: org.springframework.web.util.Log4jConfigListener 方面的内容,对于maven web 项目中启动报错jav