我指的是java语言规范,以了解super的用法.虽然我理解第一个用例即
表单
super.Identifier引用当前对象的名为Identifier的字段,但将当前对象视为当前类的超类的实例.
我似乎无法理解以下用例:
该表单
T.super.Identifier引用了与词汇封闭实例相对应的名称IdentifierT,但该实例被视为超类的实例T.
有人可以借助代码解释一下吗?
我想以下可能是第二种情况的说明:
class S{
int x=0;
}
class T extends S{
int x=1;
class C{
int x=2;
void print(){
System.out.println(this.x);
System.out.println(T.this.x);
System.out.println(T.super.x);
}
}
public static void main(String args[]){
T t=new T();
C c=t.new C();
c.print();
}
}
Run Code Online (Sandbox Code Playgroud)
输出:2 1 0
要在第二个表中自动添加列以通过唯一索引将其绑定到第一个表,我有一个如下规则:
CREATE OR REPLACE RULE auto_insert AS ON INSERT TO user DO ALSO
INSERT INTO lastlogin (id) VALUES (NEW.userid);
Run Code Online (Sandbox Code Playgroud)
如果user.userid是一个整数,这可以正常工作.但是,如果它是一个序列(例如,类型为serial或bigserial),那么插入到lastlogin表中的是下一个序列id.所以这个命令:
INSERT INTO user (username) VALUES ('john');
Run Code Online (Sandbox Code Playgroud)
将列[1,'john',...]插入用户,但将列[2,...]插入lastlogin.以下2个解决方法确实有效,但第二个解决方案消耗了两倍的序列号,因为序列仍然是自动递增的:
CREATE OR REPLACE RULE auto_insert AS ON INSERT TO user DO ALSO
INSERT INTO lastlogin (id) VALUES (lastval());
CREATE OR REPLACE RULE auto_insert AS ON INSERT TO user DO ALSO
INSERT INTO lastlogin (id) VALUES (NEW.userid-1);
Run Code Online (Sandbox Code Playgroud)
不幸的是,如果我插入多行,解决方法不起作用:
INSERT INTO user (username) …Run Code Online (Sandbox Code Playgroud) 我根据http://www.postgresql.org/docs/8.1/interactive/ddl-partitioning.html上的文档设置了一组分区表
CREATE TABLE t (year, a);
CREATE TABLE t_1980 ( CHECK (year = 1980) ) INHERITS (t);
CREATE TABLE t_1981 ( CHECK (year = 1981) ) INHERITS (t);
CREATE RULE t_ins_1980 AS ON INSERT TO t WHERE (year = 1980)
DO INSTEAD INSERT INTO t_1980 VALUES (NEW.year, NEW.a);
CREATE RULE t_ins_1981 AS ON INSERT TO t WHERE (year = 1981)
DO INSTEAD INSERT INTO t_1981 VALUES (NEW.year, NEW.a);
Run Code Online (Sandbox Code Playgroud)
根据我的理解,如果我插入 t (year, a) VALUES (1980, 5),它将转到 t_1980,如果我插入 t (year, a) …
我目前想从SQL命令response中提取一个值
像这样:
psql db -c "SELECT COUNT(test) FROM tbTest;"
Run Code Online (Sandbox Code Playgroud)
结果是:
count
------
33176
(1 row)
Run Code Online (Sandbox Code Playgroud)
我想提取33176值......有没有简单的方法来做到这一点?
我正在尝试通过编写一个语法来学习ANTLR(我正在使用带有ANTLR插件的eclipse),它一直没问题,直到我遇到错误:
NoViableAltException: line 0:-1 no viable alternative at input '<EOF>'
Run Code Online (Sandbox Code Playgroud)
当我尝试测试我的args解析器规则时;
typedident : (INT|CHAR) IDENT;
args : (typedident ( COMMA typedident)*)?;
Run Code Online (Sandbox Code Playgroud)
一个字母是一个字母后跟任何字符,这是有效的,我已经测试过了.typedident也适用于测试.
我正在使用int a12q2efwe, char a12eqdsf(完全随机)的输入,并且树在解释器中看起来很好,唯一的问题是args有四个分支而不是3,typedident,逗号,typedident,然后是最后一个中的错误.
任何帮助将不胜感激.
谢谢.
AVR/Arduino上是否实现了AMQP消息发送方?
我试图使用viewpager来显示几个片段.目前我只有一个片段,但它似乎永远不会被实例化.我尝试使用pager.setCurrentItem(0),但永远不会调用适配器中的getItem方法.有谁知道为什么我的片段没有加载到下面的代码?
主要活动
public class MainActivity extends SherlockFragmentActivity {
MyPagerAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate( savedInstanceState );
setContentView( R.layout.activity_main );
// Create the FragmentPager Adapter and assign it to the viewpager
adapter = new MyPagerAdapter( getSupportFragmentManager(), this );
ViewPager pager = ( ViewPager ) findViewById( R.id.pager );
pager.setAdapter( adapter );
pager.setCurrentItem( 0 );
// Setup the tab page indicator
TabPageIndicator indicator = ( TabPageIndicator ) findViewById( R.id.indicator );
indicator.setViewPager( pager );
}
class MyPagerAdapter extends FragmentStatePagerAdapter {
private …Run Code Online (Sandbox Code Playgroud) 我最近开始研究eclipse.在eclipse xtext中,我的语法是:
regGrp:
reg_type=reg_type1 "{" reg_definition+=reg_definition1+ "}"
;
reg_type1 :
name="CONTROL_REGISTERS"
;
reg_definition1:
name=ID '[' regSize=INT ']''{' (regFieldssss=regFieldsdefRule) '}'
;
regFieldsdefRule:
name="DESCRIPTION" '=' descStr=STRING ';'
;
Run Code Online (Sandbox Code Playgroud)
然后在final.sts文件中的Run_as - > Eclipse_application之后,我可以编写一个代码:
CONTROL_REGISTERS {
reg [5] {
DESCRIPTION = "register" ;
}
}
Run Code Online (Sandbox Code Playgroud)
在大纲视图中,我将获得如下树:
->final
-> <unnamed>
-> <unnamed>
CONTROL_REGISTERS
-> reg
-> <unnamed>
DESCRIPTION
Run Code Online (Sandbox Code Playgroud)
我想删除大纲树中的那些字段.最后,大纲树应该类似于:
->final
->CONTROL_REGISTERS
->reg
->DESCRIPTION
Run Code Online (Sandbox Code Playgroud)
请有人告诉我如何实现这个?
我需要将字节流转换为UTF-8字符行.在这一行中对我来说唯一重要的角色是最后一个.这种转换应该在一个周期内进行,因此性能非常重要.一种简单而低效的方法是:
public class Foo {
private ByteArrayOutputStream buffer = new ByteArrayOutputStream();
void next(byte input) {
this.buffer.write(input);
String text = this.buffer.toString("UTF-8"); // this is time consuming
if (text.charAt(text.length() - 1) == THE_CHAR_WE_ARE_WAITING_FOR) {
System.out.println("hurray!");
this.buffer.reset();
}
}
}
Run Code Online (Sandbox Code Playgroud)
字节数组到字符串的转换发生在每个输入字节上,据我所知,这是非常无效的.是否有可能以其他方式保留前一周期的字节到文本转换结果?
我将问题简化到最低限度。Linux下的git命令如下:
git log --pretty=format:{"commit":"%H"}
Run Code Online (Sandbox Code Playgroud)
给我一个有效的 json 元素,比如:
{"commit":"20cafdecc9898113ac6215ae70cd7622dc2cae3b"}
Run Code Online (Sandbox Code Playgroud)
在 Windows 下,我获得了一个无效的 json 元素,因为在某种程度上,Windows 似乎删除了双引号元素,我获得:
{commit:20cafdecc9898113ac6215ae70cd7622dc2cae3b}
Run Code Online (Sandbox Code Playgroud)
您知道为什么吗?或者我该如何修复它,使其在两个操作系统下都可以工作?谢谢你!