java-局部变量初始化的问题

问题描述

局部变量初始化的问题
public class DatabaseHandler extends SQLiteOpenHelper {// All Static variables// Database Versionprivate static final int DATABASE_VERSION = 1;// Database Nameprivate static final String DATABASE_NAME = ""contextsManager"";// Locations table nameprivate static final String TABLE_LOCATIONLABLES = ""locationLables"";// LOCATIONLABLES Table Columns namesprivate static final String KEY_LOCID = ""loc_id"";private static final String KEY_LOCNAME = ""loc_name"";public DatabaseHandler(Context context) {    super(context DATABASE_NAME null DATABASE_VERSION);}// Creating Tables@Overridepublic void onCreate(SQLiteDatabase db) {    String TABLE_LOCATIONLABLES = ""CREATE TABLE "" + TABLE_LOCATIONLABLES + ""(""            + KEY_LOCID + "" INTEGER PRIMARY KEY + KEY_LOCNAME + "" TEXT            +  "")"";    db.execSQL(TABLE_LOCATIONLABLES);   }

提示说的是局部变量TABLE_LOCATIONLABLES可能没有被初始化?可是我初始化了的呀,这个错误如何发生的呢?

解决方案

String TABLE_LOCATIONLABLES = ""CREATE TABLE "" + TABLE_LOCATIONLABLES + ""(""

等号两各有一个,而且String TABLE_LOCATIONLABLES这个还是新定义的,计算机迷糊了,它不认为你上面已经定义了

解决方案二:
在 oncreate(db) 里重命名 字符串 TABLE_LOCATIONLABLES

@Override    public void onCreate(SQLiteDatabase db) {        String mQuery = ""CREATE TABLE "" + TABLE_LOCATIONLABLES + ""(""                + KEY_LOCID + "" INTEGER PRIMARY KEY + KEY_LOCNAME + "" TEXT                +  "")"";        db.execSQL(mQuery);       }
时间: 2024-09-20 05:51:01

java-局部变量初始化的问题的相关文章

java局部变量问题求解答

问题描述 java局部变量问题求解答 关于java的局部变量问题,在方法中定义了一个局部变量,未赋值,然后在for语句里给其赋值,然后打印却报错,而如果在定义的时候就给它赋值,最后打印的则是在for语句里赋的值,这是什么原因啊?如下图所例,求大神们解答,想了很久都没想过来,求详解 解决方案 这不是局部变量的问题,因为java的语法严谨,你声明了变量 i ,条件代码块里对它赋值,如果条件不成立(编译器可不知道你的条件到底成不成立),即赋值没做,那你就在对没有值的变量操作,java肯定是不允许的 解

java规定初始化

如果想自己为变量赋予一个初始值,又会发生什么情况呢?为达到这个目的,一个最直接的做法是在类内部定义变量的同时也为其赋值(注意在C++里不能这样做,尽管C++的新手们总"想"这样做).在下面,Measurement类内部的字段定义已发生了变化,提供了初始值:   class Measurement { boolean b = true; char c = 'x'; byte B = 47; short s = 0xff; int i = 999; long l = 1; float f

java成员初始化

Java尽自己的全力保证所有变量都能在使用前得到正确的初始化.若被定义成相对于一个方法的"局部"变量,这一保证就通过编译期的出错提示表现出来.因此,如果使用下述代码: void f() { int i; i++; } 就会收到一条出错提示消息,告诉你i可能尚未初始化.当然,编译器也可为i赋予一个默认值,但它看起来更象一个程序员的失误,此时默认值反而会"帮倒忙".若强迫程序员提供一个初始值,就往往能够帮他/她纠出程序里的"臭虫". 然而,若将基本类

关于java类初始化顺序的问题

问题描述 关于java类初始化顺序的问题 正常来说一个类的初始化过程应该是: 1.全局静态变量 2.静态代码块 3.全局变量 4.代码块 5.构造器 有这么一个例子: public class LoadTest { //全局静态变量 static int staticI = 10; //全局变量 int i = 20; //构造器 private LoadTest() { System.out.println("staticI="+staticI); System.out.printl

java i o流 文本框-JAVA中初始化问题,代码在中的变量不能被初始化

问题描述 JAVA中初始化问题,代码在中的变量不能被初始化 我创建了一个按钮,给按钮一个鼠标监听器.按下按钮会获得一个文本区的字符串给masage,当我在其他包中调用getMasage方法,得到的字符串是123而不是文本区的字符串. import java.awt.Color;import java.awt.event.MouseEvent; import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JT

java quartz 初始化异常

问题描述 java quartz 初始化异常 2016-04-19 02:11:11,421 (QuartzScheduler.java:2425)-An error occured instantiating job to be executed. job= 'maxbet_job_group.isn_job_group' org.quartz.SchedulerException: Problem instantiating class 'com.thrash.job.DataJob' -

剖析一个java对象初始化顺序问题

今天我在Dzone阅读了一篇关于java对象实例初始化顺序的有趣文章.说它有趣,是因为作者使用了一种并不太推荐的编码风格,只有用这种编码风格才能触发这个极为少见的 Java object initialization order 问题. 其实java对象初始化顺序算是一个比较基础的java知识点.但是网上的文章多半描述不清,使用上一不小心就容易出问题. 所以在本文中,我想结合JLS和自己的理解,举例剖析问题的所在. OK,我们先来看个模仿Dzone作者原意的简单例子: [java] packag

Java变量初始化的时机

对于JAVA中变量的初始化是一个很基础的问题,其中的一些问题也是易被学习者所忽略.当在编写代码的时候碰到时,常被这些问题引发的错误,感觉莫名其妙.而且现在许多大公司的面试题,对于这方面的考查也是屡试不爽.以下是对java变量初始化的时机的分析. [java变量执行初始化的步骤] java是一门强类型语言,因此java语言规定每个变量必须先声明,然后才能使用,声明变量时必须指定该变量的数据类型.首先看下面这条语句的执行过程: int a = 5; 实际上面这条语句会被拆分成两个过程执行: (1)i

java基础-java对象初始化的问题

问题描述 java对象初始化的问题 java类中成员变量是自身对象的问题,可以知道如果这个成员变量是非static的,那么会出现stackOverflowError,即创建了一个A对象,A对象初始化时又会创建一个A对象,从而造成死循环,那么如果这个成员变量是static的,不会出现这个问题,但是运行结果我不是很懂,上代码: public class Test { public static void main(String[] args) { Person p=new Person("a&quo

Java类初始化和实例化中的2个“雷区”_java

在考虑类初始化时,我们都知道进行子类初始化时,如果父类没有初始化要先初始化子类.然而事情并没有一句话这么简单. 首先看看Java中初始化触发的条件: (1)在使用new实例化对象,访问静态数据和方法时,也就是遇到指令:new,getstatic/putstatic和invokestatic时: (2)使用反射对类进行调用时: (3)当初始化一个类时,父类如果没有进行初始化,先触发父类的初始化: (4)执行入口main方法所在的类: (5)JDK1.7动态语言支持中方法句柄所在的类,如果没有初始化