java中错误提示需要class、interface或enum怎么解决

package CarSale.CarUI;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
import javax.swing.*;

class CarUI extends Frame
{
public static void main(String [] args) throws SQLException{
{
String sql;
Connection con;
Statement stmt;
ResultSet rs;
PreparedStatement ps;
DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
con = DriverManager.getConnection("jdbc:odbc:car");
stmt = con.createStatement();
ps=con.prepareStatement(sql);
CarSale car=new CarSale();
new Carui();
}
}

//主界面
class Carui extends Frame implements ActionListener{
{
//添加四个按钮,分别为:插入,修改,删除,查询
Panel p1,p2,p3,p4;
Button b1,b2,b3,b4;
b1=new Button("插入");
b2=new Button("修改");
b3=new Button("删除");
b4=new Button("查询");
p1.add(b1);p2.add(b2);p3.add(b3);p4.add(b4);
add(p1);add(p2);add(p3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);

//点击b1/b2/b3/b4分别跳转到插入、修改、删除、查询界面
    b1.addActionListener(new insert());
    b2.addActionListener(new update());
    b3.addActionListener(new delete());
    b4.addActionListener(new query());

}
}
//插入界面
class insert extends Frame implements ActionListener
{
//定义插入界面,共包括四个文本框,四个标签和一个按钮
Label l1,l2,l3,l4,message;
TextField t1,t2,t3,t4;
Button insert;
public void init()
{
l1 = new Label("编号");
l2=new Label("销售单号");
l3=new Label("车型");
l4=new Label("价格");
t1=new TextField(10);
t2=new TextField(10);
t3=new TextField(10);
t4=new TextField(10);
insert=new Button("确认插入");
msg=new Label(" ");
add(l1);add(t1);
add(l2);add(t2);
add(l3);add(t3);
add(l4);add(t4);
add(insert);
insert.addActionListener(this);
}
//为SQL语句赋值,并执行
public void actionPerformed(ActionEvent e)
{
Cnum=t1.getText();
Snum=t2.getText();
style=t3.getText();
price=t4.getText();
car.create();
msg.setText("插入记录成功!");
//清空各输入框,并将焦点移到第一个输入框中
t1.setText("");
t2.setText("");
t3.setText("");
t4.setText("");
t1.requestFocus();
}
}

class update extends Frame implements ActionListener//修改界面
{
//定义修改界面,共包括3个文本框,3个标签和一个按钮
Label l2,l3,l4,message;
TextField t2,t3,t4;
Button insert;
public void init()
{
l2=new Label("销售单号");
l3=new Label("车型");
l4=new Label("价格");
t2=new TextField(10);
t3=new TextField(10);
t4=new TextField(10);
insert=new Button("确认修改");
msg=new Label(" ");
add(l2);add(t2);
add(l3);add(t3);
add(l4);add(t4);
add(update);
update.addActionListener(this);
}
//为SQL语句赋值,并执行
public void actionPerformed(ActionEvent e)
{
Snum=t2.getText();
style=t3.getText();
price=t4.getText();
car.update();
msg.setText("修改记录成功!");
//清空各输入框,并将焦点移到第一个输入框中
t2.setText("");
t3.setText("");
t4.setText("");
t2.requestFocus();
}
}
class delete extends Frame implements ActionListener //删除界面
{
//定义删除界面,共包括1个文本框,1个标签和1个按钮
Label l2,message;
TextField t2;
Button delete;
public void init()
{
l2=new Label("销售单号");
t2=new TextField(10);
delete=new Button("确认删除");
msg=new Label(" ");
add(l2);add(t2);
add(delete);
delete.addActionListener(this);
}
//为SQL语句赋值,并执行
public void actionPerformed(ActionEvent e)
{
Snum=t2.getText();
car.delete();
msg.setText("删除记录成功!");
//清空各输入框,并将焦点移到第一个输入框中
t2.setText("");
t2.requestFocus();
}
}
//查询界面
class query extends Frame implements ActionListener
{
//定义查询界面,共包括四个文本框,四个标签和一个按钮
Label l1,l2,l3,l4;
TextField t1,t2,t3,t4;
Button query;
public void init()
{
l1 = new Label("编号");
l2=new Label("销售单号");
l3=new Label("车型");
l4=new Label("价格");
t1=new TextField(10);
t2=new TextField(10);
t3=new TextField(10);
t4=new TextField(10);
query=new Button("确认插入");
//msg=new Label(" ");
add(l2);add(t2);
add(l1);add(t1);
add(l3);add(t3);
add(l4);add(t4);
add(query);
query.addActionListener(this);
}
//为SQL语句赋值,并执行
public void actionPerformed(ActionEvent e)
{
Snum=t2.getText();
t1.getText()=car.Cnum;
t3.getText()=car.style;
t4.getText()=car.price;
car.query();
//msg.setText("插入记录成功!");
//清空各输入框,并将焦点移到第一个输入框中
/*t1.setText("");
t2.setText("");
t3.setText("");
t4.setText("");
t1.requestFocus();*/
}
}
class update extends Frame implements ActionListener//修改界面
{
//定义修改界面,共包括3个文本框,3个标签和一个按钮
Label l2,l3,l4,message;
TextField t2,t3,t4;
Button insert;
public void init()
{
l2=new Label("销售单号");
l3=new Label("车型");
l4=new Label("价格");
t2=new TextField(10);
t3=new TextField(10);
t4=new TextField(10);
insert=new Button("确认修改");
msg=new Label(" ");
add(l2);add(t2);
add(l3);add(t3);
add(l4);add(t4);
add(update);
update.addActionListener(this);
}
//为SQL语句赋值,并执行
public void actionPerformed(ActionEvent e)
{
Snum=t2.getText();
style=t3.getText();
price=t4.getText();
car.update();
msg.setText("修改记录成功!");
//清空各输入框,并将焦点移到第一个输入框中
t2.setText("");
t3.setText("");
t4.setText("");
t2.requestFocus();
}
}}}
这是一个有关汽车销售的部分代码,提示最后一行错误,需要class、interface或enum

2个回答

//添加四个按钮,分别为:插入,修改,删除,查询
Panel p1,p2,p3,p4;
Button b1,b2,b3,b4;
b1=new Button("插入");
b2=new Button("修改");
b3=new Button("删除");
b4=new Button("查询");
p1.add(b1);p2.add(b2);p3.add(b3);p4.add(b4);
add(p1);add(p2);add(p3);
b1.addActionListener(this);
b2.addActionListener(this);
b3.addActionListener(this);
b4.addActionListener(this);
//点击b1/b2/b3/b4分别跳转到插入、修改、删除、查询界面
b1.addActionListener(new insert());
b2.addActionListener(new update());
b3.addActionListener(new delete());
b4.addActionListener(new query());
}

这些代码要写在函数里,不能直接丢在类的定义里

后面也是。

可以定义一个构造函数,
public Carui()
{
放在里面
}

你整个完全对java语法都不懂,汗。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
为什么Java在记事本中编辑下dos里会出现需要class, interface或enum
怎么解决,在MyEclipse里就行,这是怎么回事呀? 需要class, interface或enum } ^ 1 个错误
java编辑时报错:需要class, interface或enum
做一个简单的音频播放器,代码是用记事本编辑的,但是用Javac编译的时候却报错说:需要class, interface或enum。不知道怎么修改了。 望各位不吝赐教! 报错提示: ![图片说明](https://img-ask.csdn.net/upload/201711/26/1511703526_313742.png) 代码: ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750726_302002.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750739_60457.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750748_796067.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750758_138588.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750766_508961.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750784_649041.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750797_476439.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750807_262548.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750817_459910.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750826_302891.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750834_592646.png) ![图片说明](https://img-ask.csdn.net/upload/201711/27/1511750843_153300.png)
ieda 编译后报错Error:(2, 1) java: 需要class, interface或enum;该怎么办
{ "title" : "调试:com.intellij.database.psi.DbTableImpl", "methodList" : [ { "name" : "isSystem", "desc" : "public boolean com.intellij.database.psi.DbTableImpl.isSystem()", "value" : "false" }, { "name" : "isTemporary", "desc" : "public boolean com.intellij.database.psi.DbTableImpl.isTemporary()", "value" : "false" }, { "name" : "getDocumentation", "desc" : "public java.lang.StringBuilder com.intellij.database.psi.DbTableImpl.getDocumentation()", "value" : "<html><body><b>Data Source:</b> @localhost<br><b>Schema:</b> book<br><b>Table:</b> book<br><br><code><pre><font color=\"#808080\">-- auto-generated definition</font>\n<font color=\"#cc7832\"><b>create</b></font> <font color=\"#cc7832\"><b>table</b></font> book\n(\n id <font color=\"#cc7832\"><b>int</b></font> <font color=\"#cc7832\"><b>null</b></font><font color=\"#cc7832\">,</font>\n price <font color=\"#cc7832\"><b>double</b></font> <font color=\"#cc7832\"><b>null</b></font>\n)<font color=\"#cc7832\">;</font></pre></code>" }, { "name" : "getDocumentation", "desc" : "public java.lang.CharSequence com.intellij.database.psi.DbTableImpl.getDocumentation()", "value" : "<html><body><b>Data Source:</b> @localhost<br><b>Schema:</b> book<br><b>Table:</b> book<br><br><code><pre><font color=\"#808080\">-- auto-generated definition</font>\n<font color=\"#cc7832\"><b>create</b></font> <font color=\"#cc7832\"><b>table</b></font> book\n(\n id <font color=\"#cc7832\"><b>int</b></font> <font color=\"#cc7832\"><b>null</b></font><font color=\"#cc7832\">,</font>\n price <font color=\"#cc7832\"><b>double</b></font> <font color=\"#cc7832\"><b>null</b></font>\n)<font color=\"#cc7832\">;</font></pre></code>" }, { "name" : "getColumnAttrs", "desc" : "public java.util.Set<com.intellij.database.model.DasColumn$Attribute> com.intellij.database.psi.DbTableImpl.getColumnAttrs(com.intellij.database.model.DasColumn)", "value" : null }, { "name" : "getName", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getName()", "value" : "book" }, { "name" : "getName", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getName(com.intellij.psi.PsiElement)", "value" : null }, { "name" : "getLanguage", "desc" : "public com.intellij.lang.Language com.intellij.database.psi.DbElementImpl.getLanguage()", "value" : "Language: SQL" }, { "name" : "getTypeName", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getTypeName()", "value" : "table" }, { "name" : "getParent", "desc" : "public com.intellij.database.psi.DbElement com.intellij.database.psi.DbElementImpl.getParent()", "value" : "schema:book" }, { "name" : "getParent", "desc" : "public com.intellij.psi.PsiElement com.intellij.database.psi.DbElementImpl.getParent()", "value" : "schema:book" }, { "name" : "getParent", "desc" : "public com.intellij.psi.PsiFileSystemItem com.intellij.database.psi.DbElementImpl.getParent()", "value" : "schema:book" }, { "name" : "init", "desc" : "public void com.intellij.database.psi.DbElementImpl.init(com.intellij.psi.PsiElement)", "value" : null }, { "name" : "setName", "desc" : "public com.intellij.psi.PsiElement com.intellij.database.psi.DbElementImpl.setName(java.lang.String) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "isDirectory", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.isDirectory()", "value" : "false" }, { "name" : "getDeclaration", "desc" : "public com.intellij.psi.PsiElement com.intellij.database.psi.DbElementImpl.getDeclaration()", "value" : "table:book" }, { "name" : "isValid", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.isValid()", "value" : "true" }, { "name" : "getText", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getText()", "value" : "create table book\n(\n id int null,\n price double null\n);\n\n" }, { "name" : "getComment", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getComment()", "value" : null }, { "name" : "isWritable", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.isWritable()", "value" : "true" }, { "name" : "newDeclarationProcessor", "desc" : "public static com.intellij.util.Processor<com.intellij.database.psi.DbElement> com.intellij.database.psi.DbElementImpl.newDeclarationProcessor(com.intellij.psi.scope.PsiScopeProcessor,com.intellij.psi.ResolveState,com.intellij.psi.PsiElement)", "value" : null }, { "name" : "createDeclarationProcessor", "desc" : "public com.intellij.util.Processor<com.intellij.database.psi.DbElement> com.intellij.database.psi.DbElementImpl.createDeclarationProcessor(com.intellij.psi.scope.PsiScopeProcessor,com.intellij.psi.ResolveState,com.intellij.psi.PsiElement,com.intellij.psi.PsiElement)", "value" : null }, { "name" : "getIcon", "desc" : "public javax.swing.Icon com.intellij.database.psi.DbElementImpl.getIcon()", "value" : "Deferred. Base=Row icon. myIcons=[jar:file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202018.3.4/plugins/DatabaseTools/lib/database-openapi.jar!/icons/table.svg, null]" }, { "name" : "getIcon", "desc" : "public javax.swing.Icon com.intellij.database.psi.DbElementImpl.getIcon(boolean)", "value" : null }, { "name" : "getManager", "desc" : "public com.intellij.psi.PsiManager com.intellij.database.psi.DbElementImpl.getManager()", "value" : "com.intellij.psi.impl.PsiManagerImpl@6823f16" }, { "name" : "getWeight", "desc" : "public int com.intellij.database.psi.DbElementImpl.getWeight()", "value" : "10000" }, { "name" : "isCaseSensitive", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.isCaseSensitive()", "value" : "false" }, { "name" : "getPosition", "desc" : "public short com.intellij.database.psi.DbElementImpl.getPosition()", "value" : "0" }, { "name" : "getChildren", "desc" : "public com.intellij.psi.PsiElement[] com.intellij.database.psi.DbElementImpl.getChildren()", "value" : "[Lcom.intellij.psi.PsiElement;@55d5f84e" }, { "name" : "getDelegate", "desc" : "public D com.intellij.database.psi.DbElementImpl.getDelegate()", "value" : "book: table" }, { "name" : "getKind", "desc" : "public com.intellij.database.model.ObjectKind com.intellij.database.psi.DbElementImpl.getKind()", "value" : "table" }, { "name" : "getProject", "desc" : "public com.intellij.openapi.project.Project com.intellij.database.psi.DbElementImpl.getProject()", "value" : "Project 'E:\\2019实践学期' demo" }, { "name" : "getVirtualFile", "desc" : "public com.intellij.openapi.vfs.VirtualFile com.intellij.database.psi.DbElementImpl.getVirtualFile()", "value" : "DB VirtualFile: table, book.book [@localhost] (Valid)" }, { "name" : "getMetaData", "desc" : "public com.intellij.psi.meta.PsiMetaData com.intellij.database.psi.DbElementImpl.getMetaData()", "value" : "table:book" }, { "name" : "getLocationString", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getLocationString()", "value" : "book [@localhost]" }, { "name" : "processDeclarations", "desc" : "public final boolean com.intellij.database.psi.DbElementImpl.processDeclarations(com.intellij.psi.scope.PsiScopeProcessor,com.intellij.psi.ResolveState,com.intellij.psi.PsiElement,com.intellij.psi.PsiElement)", "value" : null }, { "name" : "navigate", "desc" : "public void com.intellij.database.psi.DbElementImpl.navigate(boolean)", "value" : null }, { "name" : "canNavigate", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.canNavigate()", "value" : null }, { "name" : "acceptChildren", "desc" : "public void com.intellij.database.psi.DbElementImpl.acceptChildren(com.intellij.psi.PsiElementVisitor)", "value" : null }, { "name" : "processChildren", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.processChildren(com.intellij.psi.search.PsiElementProcessor<com.intellij.psi.PsiFileSystemItem>)", "value" : null }, { "name" : "getDataSource", "desc" : "public com.intellij.database.psi.DbDataSource com.intellij.database.psi.DbElementImpl.getDataSource()", "value" : "root:@localhost" }, { "name" : "getDataSource", "desc" : "public com.intellij.database.psi.DbDataSourceImpl com.intellij.database.psi.DbElementImpl.getDataSource()", "value" : "root:@localhost" }, { "name" : "checkSetName", "desc" : "public void com.intellij.database.psi.DbElementImpl.checkSetName(java.lang.String) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "getDasParent", "desc" : "public P com.intellij.database.psi.DbElementImpl.getDasParent()", "value" : "schema:book" }, { "name" : "getDasParent", "desc" : "public com.intellij.database.model.DasObject com.intellij.database.psi.DbElementImpl.getDasParent()", "value" : "schema:book" }, { "name" : "getDasChildren", "desc" : "public com.intellij.util.containers.JBIterable<com.intellij.database.psi.DbElement> com.intellij.database.psi.DbElementImpl.getDasChildren(com.intellij.database.model.ObjectKind)", "value" : null }, { "name" : "canNavigateToSource", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.canNavigateToSource()", "value" : null }, { "name" : "getBaseIcon", "desc" : "public javax.swing.Icon com.intellij.database.psi.DbElementImpl.getBaseIcon()", "value" : "jar:file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202018.3.4/plugins/DatabaseTools/lib/database-openapi.jar!/icons/table.svg" }, { "name" : "getNode", "desc" : "public com.intellij.lang.ASTNode com.intellij.psi.impl.FakePsiElement.getNode()", "value" : null }, { "name" : "getTextLength", "desc" : "public int com.intellij.psi.impl.FakePsiElement.getTextLength()", "value" : "0" }, { "name" : "getFirstChild", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.getFirstChild()", "value" : null }, { "name" : "getLastChild", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.getLastChild()", "value" : null }, { "name" : "getNextSibling", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.getNextSibling()", "value" : null }, { "name" : "getIcon", "desc" : "public final javax.swing.Icon com.intellij.psi.impl.FakePsiElement.getIcon(int)", "value" : null }, { "name" : "getPresentation", "desc" : "public com.intellij.navigation.ItemPresentation com.intellij.psi.impl.FakePsiElement.getPresentation()", "value" : "table:book" }, { "name" : "getTextOffset", "desc" : "public int com.intellij.psi.impl.FakePsiElement.getTextOffset()", "value" : "0" }, { "name" : "getPrevSibling", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.getPrevSibling()", "value" : null }, { "name" : "isPhysical", "desc" : "public boolean com.intellij.psi.impl.FakePsiElement.isPhysical()", "value" : "false" }, { "name" : "getTextRange", "desc" : "public com.intellij.openapi.util.TextRange com.intellij.psi.impl.FakePsiElement.getTextRange()", "value" : null }, { "name" : "findElementAt", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.findElementAt(int)", "value" : null }, { "name" : "getStartOffsetInParent", "desc" : "public int com.intellij.psi.impl.FakePsiElement.getStartOffsetInParent()", "value" : "0" }, { "name" : "textContains", "desc" : "public boolean com.intellij.psi.impl.FakePsiElement.textContains(char)", "value" : null }, { "name" : "textToCharArray", "desc" : "public char[] com.intellij.psi.impl.FakePsiElement.textToCharArray()", "value" : null }, { "name" : "getPresentableText", "desc" : "public java.lang.String com.intellij.psi.impl.FakePsiElement.getPresentableText()", "value" : "book" }, { "name" : "add", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.add(com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "replace", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.replace(com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "checkDelete", "desc" : "public void com.intellij.psi.impl.PsiElementBase.checkDelete() throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "delete", "desc" : "public void com.intellij.psi.impl.PsiElementBase.delete() throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "accept", "desc" : "public void com.intellij.psi.impl.PsiElementBase.accept(com.intellij.psi.PsiElementVisitor)", "value" : null }, { "name" : "getContext", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.getContext()", "value" : "schema:book" }, { "name" : "copy", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.copy()", "value" : null }, { "name" : "addRange", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addRange(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "addBefore", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addBefore(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "addAfter", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addAfter(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "getReference", "desc" : "public com.intellij.psi.PsiReference com.intellij.psi.impl.PsiElementBase.getReference()", "value" : null }, { "name" : "getContainingFile", "desc" : "public com.intellij.psi.PsiFile com.intellij.psi.impl.PsiElementBase.getContainingFile()", "value" : null }, { "name" : "getOriginalElement", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.getOriginalElement()", "value" : "table:book" }, { "name" : "getNavigationElement", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.getNavigationElement()", "value" : "table:book" }, { "name" : "getUseScope", "desc" : "public com.intellij.psi.search.SearchScope com.intellij.psi.impl.PsiElementBase.getUseScope()", "value" : "Project and Libraries" }, { "name" : "getResolveScope", "desc" : "public com.intellij.psi.search.GlobalSearchScope com.intellij.psi.impl.PsiElementBase.getResolveScope()", "value" : "Project and Libraries" }, { "name" : "getReferences", "desc" : "public com.intellij.psi.PsiReference[] com.intellij.psi.impl.PsiElementBase.getReferences()", "value" : "[Lcom.intellij.psi.PsiReference;@140035ec" }, { "name" : "checkAdd", "desc" : "public void com.intellij.psi.impl.PsiElementBase.checkAdd(com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "addRangeBefore", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addRangeBefore(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "addRangeAfter", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addRangeAfter(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "findReferenceAt", "desc" : "public com.intellij.psi.PsiReference com.intellij.psi.impl.PsiElementBase.findReferenceAt(int)", "value" : null }, { "name" : "textMatches", "desc" : "public boolean com.intellij.psi.impl.PsiElementBase.textMatches(com.intellij.psi.PsiElement)", "value" : null }, { "name" : "textMatches", "desc" : "public boolean com.intellij.psi.impl.PsiElementBase.textMatches(java.lang.CharSequence)", "value" : null }, { "name" : "isEquivalentTo", "desc" : "public boolean com.intellij.psi.impl.PsiElementBase.isEquivalentTo(com.intellij.psi.PsiElement)", "value" : null }, { "name" : "deleteChildRange", "desc" : "public void com.intellij.psi.impl.PsiElementBase.deleteChildRange(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "isNativeFileType", "desc" : "public static boolean com.intellij.psi.impl.ElementBase.isNativeFileType(com.intellij.openapi.fileTypes.FileType)", "value" : null }, { "name" : "overlayIcons", "desc" : "public static javax.swing.Icon com.intellij.psi.impl.ElementBase.overlayIcons(javax.swing.Icon...)", "value" : null }, { "name" : "buildRowIcon", "desc" : "public static com.intellij.ui.RowIcon com.intellij.psi.impl.ElementBase.buildRowIcon(javax.swing.Icon,javax.swing.Icon)", "value" : null }, { "name" : "transformFlags", "desc" : "public static int com.intellij.psi.impl.ElementBase.transformFlags(com.intellij.psi.PsiElement,int)", "value" : null }, { "name" : "createLayeredIcon", "desc" : "public static com.intellij.ui.RowIcon com.intellij.psi.impl.ElementBase.createLayeredIcon(com.intellij.openapi.util.Iconable,javax.swing.Icon,int)", "value" : null }, { "name" : "iconWithVisibilityIfNeeded", "desc" : "public static javax.swing.Icon com.intellij.psi.impl.ElementBase.iconWithVisibilityIfNeeded(int,javax.swing.Icon,javax.swing.Icon)", "value" : null }, { "name" : "registerIconLayer", "desc" : "public static void com.intellij.psi.impl.ElementBase.registerIconLayer(int,javax.swing.Icon)", "value" : null }, { "name" : "replace", "desc" : "public <T> boolean com.intellij.openapi.util.UserDataHolderBase.replace(com.intellij.openapi.util.Key<T>,T,T)", "value" : null }, { "name" : "getUserData", "desc" : "public <T> T com.intellij.openapi.util.UserDataHolderBase.getUserData(com.intellij.openapi.util.Key<T>)", "value" : null }, { "name" : "copyUserDataTo", "desc" : "public void com.intellij.openapi.util.UserDataHolderBase.copyUserDataTo(com.intellij.openapi.util.UserDataHolderBase)", "value" : null }, { "name" : "isUserDataEmpty", "desc" : "public boolean com.intellij.openapi.util.UserDataHolderBase.isUserDataEmpty()", "value" : "false" }, { "name" : "putUserData", "desc" : "public <T> void com.intellij.openapi.util.UserDataHolderBase.putUserData(com.intellij.openapi.util.Key<T>,T)", "value" : null }, { "name" : "getCopyableUserData", "desc" : "public <T> T com.intellij.openapi.util.UserDataHolderBase.getCopyableUserData(com.intellij.openapi.util.Key<T>)", "value" : null }, { "name" : "putCopyableUserData", "desc" : "public <T> void com.intellij.openapi.util.UserDataHolderBase.putCopyableUserData(com.intellij.openapi.util.Key<T>,T)", "value" : null }, { "name" : "copyCopyableDataTo", "desc" : "public void com.intellij.openapi.util.UserDataHolderBase.copyCopyableDataTo(com.intellij.openapi.util.UserDataHolderBase)", "value" : null }, { "name" : "getUserDataString", "desc" : "public java.lang.String com.intellij.openapi.util.UserDataHolderBase.getUserDataString()", "value" : "{CACHED_SMART_POINTER_KEY=com.intellij.reference.SoftReference@2190c68d, lastComputedIcon={0=Row icon. myIcons=[jar:file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202018.3.4/plugins/DatabaseTools/lib/database-openapi.jar!/icons/table.svg, null]}, COLOR_KEY=com.intellij.database.view.DatabaseColorManager$CachedColor@36fd2726}" }, { "name" : "putUserDataIfAbsent", "desc" : "public <T> T com.intellij.openapi.util.UserDataHolderBase.putUserDataIfAbsent(com.intellij.openapi.util.Key<T>,T)", "value" : null }, { "name" : "getTextRangeInParent", "desc" : "public default com.intellij.openapi.util.TextRange com.intellij.psi.PsiElement.getTextRangeInParent()", "value" : "(0,0)" }, { "name" : "getDbParent", "desc" : "public default com.intellij.database.model.DasObject com.intellij.database.model.DasObject.getDbParent()", "value" : "schema:book" }, { "name" : "getDbChildren", "desc" : "public default <C> com.intellij.util.containers.JBIterable<C> com.intellij.database.model.DasObject.getDbChildren(java.lang.Class<C>,com.intellij.database.model.ObjectKind)", "value" : null }, { "name" : "getDependencies", "desc" : "public default java.lang.Object[] com.intellij.psi.meta.PsiMetaData.getDependencies()", "value" : "[Ljava.lang.Object;@4c90ae3f" }, { "name" : "getDependences", "desc" : "public default java.lang.Object[] com.intellij.psi.meta.PsiMetaData.getDependences()", "value" : "[Ljava.lang.Object;@4c90ae3f" } ], "----" : "-----------------我是一条华丽的分割线-----------------", "fieldList" : [ { "name" : "LOG", "type" : "com.intellij.openapi.diagnostic.Logger", "value" : "com.intellij.idea.IdeaLogger@689a33b9" }, { "name" : "WEIGHT_BASE", "type" : "int", "value" : "10000" }, { "name" : "WEIGHT_INC", "type" : "int", "value" : "1000" }, { "name" : "myParent", "type" : "com.intellij.database.psi.DbElement", "value" : "schema:book" }, { "name" : "myDelegate", "type" : "java.lang.Object", "value" : "book: table" }, { "name" : "myTransactionalVersion", "type" : "long", "value" : "11" }, { "name" : "ASYNC_DOC_CUT", "type" : "java.lang.String", "value" : "<!-- async-doc-cut -->" }, { "name" : "LOG", "type" : "com.intellij.openapi.diagnostic.Logger", "value" : "com.intellij.idea.IdeaLogger@63538153" }, { "name" : "LOG", "type" : "com.intellij.openapi.diagnostic.Logger", "value" : "com.intellij.idea.IdeaLogger@57ae08e7" }, { "name" : "FLAGS_LOCKED", "type" : "int", "value" : "2048" }, { "name" : "ICON_COMPUTE", "type" : "com.intellij.util.NullableFunction", "value" : "com.intellij.psi.impl.ElementBase$$Lambda$705/682411935@622e87c4" }, { "name" : "VISIBILITY_ICON_PLACEHOLDER", "type" : "com.intellij.openapi.util.NotNullLazyValue", "value" : "com.intellij.psi.impl.ElementBase$1@5b1067c3" }, { "name" : "ICON_PLACEHOLDER", "type" : "com.intellij.openapi.util.NotNullLazyValue", "value" : "com.intellij.psi.impl.ElementBase$2@24b63ceb" }, { "name" : "ourIconLayers", "type" : "java.util.List", "value" : "[com.intellij.psi.impl.ElementBase$IconLayer@3f8e1aa, com.intellij.psi.impl.ElementBase$IconLayer@157e46b6, com.intellij.psi.impl.ElementBase$IconLayer@4d0815a5, com.intellij.psi.impl.ElementBase$IconLayer@58cc298b]" }, { "name" : "COPYABLE_USER_MAP_KEY", "type" : "com.intellij.openapi.util.Key", "value" : "COPYABLE_USER_MAP_KEY" }, { "name" : "myUserMap", "type" : "com.intellij.util.keyFMap.KeyFMap", "value" : "{CACHED_SMART_POINTER_KEY=com.intellij.reference.SoftReference@2190c68d, lastComputedIcon={0=Row icon. myIcons=[jar:file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202018.3.4/plugins/DatabaseTools/lib/database-openapi.jar!/icons/table.svg, null]}, COLOR_KEY=com.intellij.database.view.DatabaseColorManager$CachedColor@36fd2726}" }, { "name" : "updater", "type" : "com.intellij.util.concurrency.AtomicFieldUpdater", "value" : "com.intellij.util.concurrency.AtomicFieldUpdater@1c7d7689" } ] } //调试列原始对象 { "title" : "调试:com.intellij.database.psi.DbColumnImpl", "methodList" : [ { "name" : "getDefault", "desc" : "public java.lang.String com.intellij.database.psi.DbColumnImpl.getDefault()", "value" : null }, { "name" : "getParent", "desc" : "public com.intellij.database.psi.DbTable com.intellij.database.psi.DbColumnImpl.getParent()", "value" : "table:book" }, { "name" : "getParent", "desc" : "public com.intellij.database.psi.DbElement com.intellij.database.psi.DbColumnImpl.getParent()", "value" : "table:book" }, { "name" : "getParent", "desc" : "public com.intellij.psi.PsiFileSystemItem com.intellij.database.psi.DbColumnImpl.getParent()", "value" : "table:book" }, { "name" : "getParent", "desc" : "public com.intellij.psi.PsiElement com.intellij.database.psi.DbColumnImpl.getParent()", "value" : "table:book" }, { "name" : "getTable", "desc" : "public com.intellij.database.model.DasTable com.intellij.database.psi.DbColumnImpl.getTable()", "value" : "table:book" }, { "name" : "getTable", "desc" : "public com.intellij.database.psi.DbTable com.intellij.database.psi.DbColumnImpl.getTable()", "value" : "table:book" }, { "name" : "getWeight", "desc" : "public int com.intellij.database.psi.DbColumnImpl.getWeight()", "value" : "10030" }, { "name" : "getDataType", "desc" : "public com.intellij.database.model.DataType com.intellij.database.psi.DbColumnImpl.getDataType()", "value" : "int(11)" }, { "name" : "isNotNull", "desc" : "public boolean com.intellij.database.psi.DbColumnImpl.isNotNull()", "value" : "false" }, { "name" : "getDocumentation", "desc" : "public java.lang.StringBuilder com.intellij.database.psi.DbColumnImpl.getDocumentation()", "value" : "<html><body><b>Data Source:</b> @localhost<br><b>Schema:</b> book<br><b>Table:</b> book<br><b>Column:</b> id<br><br><code><pre><font color=\"#cc7832\"><b>alter</b></font> <font color=\"#cc7832\"><b>table</b></font> book\n <font color=\"#cc7832\"><b>add</b></font> id <font color=\"#cc7832\"><b>int</b></font> <font color=\"#cc7832\"><b>null</b></font><font color=\"#cc7832\">;</font>\n\n</pre></code>" }, { "name" : "getDocumentation", "desc" : "public java.lang.CharSequence com.intellij.database.psi.DbColumnImpl.getDocumentation()", "value" : "<html><body><b>Data Source:</b> @localhost<br><b>Schema:</b> book<br><b>Table:</b> book<br><b>Column:</b> id<br><br><code><pre><font color=\"#cc7832\"><b>alter</b></font> <font color=\"#cc7832\"><b>table</b></font> book\n <font color=\"#cc7832\"><b>add</b></font> id <font color=\"#cc7832\"><b>int</b></font> <font color=\"#cc7832\"><b>null</b></font><font color=\"#cc7832\">;</font>\n\n</pre></code>" }, { "name" : "getTableName", "desc" : "public java.lang.String com.intellij.database.psi.DbColumnImpl.getTableName()", "value" : "book" }, { "name" : "getName", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getName()", "value" : "id" }, { "name" : "getName", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getName(com.intellij.psi.PsiElement)", "value" : null }, { "name" : "getLanguage", "desc" : "public com.intellij.lang.Language com.intellij.database.psi.DbElementImpl.getLanguage()", "value" : "Language: SQL" }, { "name" : "getTypeName", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getTypeName()", "value" : "column" }, { "name" : "init", "desc" : "public void com.intellij.database.psi.DbElementImpl.init(com.intellij.psi.PsiElement)", "value" : null }, { "name" : "setName", "desc" : "public com.intellij.psi.PsiElement com.intellij.database.psi.DbElementImpl.setName(java.lang.String) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "isDirectory", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.isDirectory()", "value" : "false" }, { "name" : "getDeclaration", "desc" : "public com.intellij.psi.PsiElement com.intellij.database.psi.DbElementImpl.getDeclaration()", "value" : "column:id" }, { "name" : "isValid", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.isValid()", "value" : "true" }, { "name" : "getText", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getText()", "value" : "alter table book\n add id int null;\n\n" }, { "name" : "getComment", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getComment()", "value" : null }, { "name" : "isWritable", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.isWritable()", "value" : "true" }, { "name" : "newDeclarationProcessor", "desc" : "public static com.intellij.util.Processor<com.intellij.database.psi.DbElement> com.intellij.database.psi.DbElementImpl.newDeclarationProcessor(com.intellij.psi.scope.PsiScopeProcessor,com.intellij.psi.ResolveState,com.intellij.psi.PsiElement)", "value" : null }, { "name" : "createDeclarationProcessor", "desc" : "public com.intellij.util.Processor<com.intellij.database.psi.DbElement> com.intellij.database.psi.DbElementImpl.createDeclarationProcessor(com.intellij.psi.scope.PsiScopeProcessor,com.intellij.psi.ResolveState,com.intellij.psi.PsiElement,com.intellij.psi.PsiElement)", "value" : null }, { "name" : "getIcon", "desc" : "public javax.swing.Icon com.intellij.database.psi.DbElementImpl.getIcon()", "value" : "Deferred. Base=jar:file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202018.3.4/plugins/DatabaseTools/lib/database-openapi.jar!/icons/col.svg" }, { "name" : "getIcon", "desc" : "public javax.swing.Icon com.intellij.database.psi.DbElementImpl.getIcon(boolean)", "value" : null }, { "name" : "getManager", "desc" : "public com.intellij.psi.PsiManager com.intellij.database.psi.DbElementImpl.getManager()", "value" : "com.intellij.psi.impl.PsiManagerImpl@6823f16" }, { "name" : "isCaseSensitive", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.isCaseSensitive()", "value" : "false" }, { "name" : "getPosition", "desc" : "public short com.intellij.database.psi.DbElementImpl.getPosition()", "value" : "1" }, { "name" : "getChildren", "desc" : "public com.intellij.psi.PsiElement[] com.intellij.database.psi.DbElementImpl.getChildren()", "value" : "[Lcom.intellij.psi.PsiElement;@55d5f84e" }, { "name" : "getDelegate", "desc" : "public D com.intellij.database.psi.DbElementImpl.getDelegate()", "value" : "id: column" }, { "name" : "getKind", "desc" : "public com.intellij.database.model.ObjectKind com.intellij.database.psi.DbElementImpl.getKind()", "value" : "column" }, { "name" : "getProject", "desc" : "public com.intellij.openapi.project.Project com.intellij.database.psi.DbElementImpl.getProject()", "value" : "Project 'E:\\2019实践学期' demo" }, { "name" : "getVirtualFile", "desc" : "public com.intellij.openapi.vfs.VirtualFile com.intellij.database.psi.DbElementImpl.getVirtualFile()", "value" : "DB VirtualFile: column, book.book.id [@localhost] (Valid)" }, { "name" : "getMetaData", "desc" : "public com.intellij.psi.meta.PsiMetaData com.intellij.database.psi.DbElementImpl.getMetaData()", "value" : "column:id" }, { "name" : "getLocationString", "desc" : "public java.lang.String com.intellij.database.psi.DbElementImpl.getLocationString()", "value" : "book.book [@localhost]" }, { "name" : "processDeclarations", "desc" : "public final boolean com.intellij.database.psi.DbElementImpl.processDeclarations(com.intellij.psi.scope.PsiScopeProcessor,com.intellij.psi.ResolveState,com.intellij.psi.PsiElement,com.intellij.psi.PsiElement)", "value" : null }, { "name" : "navigate", "desc" : "public void com.intellij.database.psi.DbElementImpl.navigate(boolean)", "value" : null }, { "name" : "canNavigate", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.canNavigate()", "value" : null }, { "name" : "acceptChildren", "desc" : "public void com.intellij.database.psi.DbElementImpl.acceptChildren(com.intellij.psi.PsiElementVisitor)", "value" : null }, { "name" : "processChildren", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.processChildren(com.intellij.psi.search.PsiElementProcessor<com.intellij.psi.PsiFileSystemItem>)", "value" : null }, { "name" : "getDataSource", "desc" : "public com.intellij.database.psi.DbDataSource com.intellij.database.psi.DbElementImpl.getDataSource()", "value" : "root:@localhost" }, { "name" : "getDataSource", "desc" : "public com.intellij.database.psi.DbDataSourceImpl com.intellij.database.psi.DbElementImpl.getDataSource()", "value" : "root:@localhost" }, { "name" : "checkSetName", "desc" : "public void com.intellij.database.psi.DbElementImpl.checkSetName(java.lang.String) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "getDasParent", "desc" : "public P com.intellij.database.psi.DbElementImpl.getDasParent()", "value" : "table:book" }, { "name" : "getDasParent", "desc" : "public com.intellij.database.model.DasObject com.intellij.database.psi.DbElementImpl.getDasParent()", "value" : "table:book" }, { "name" : "getDasChildren", "desc" : "public com.intellij.util.containers.JBIterable<com.intellij.database.psi.DbElement> com.intellij.database.psi.DbElementImpl.getDasChildren(com.intellij.database.model.ObjectKind)", "value" : null }, { "name" : "canNavigateToSource", "desc" : "public boolean com.intellij.database.psi.DbElementImpl.canNavigateToSource()", "value" : null }, { "name" : "getBaseIcon", "desc" : "public javax.swing.Icon com.intellij.database.psi.DbElementImpl.getBaseIcon()", "value" : "jar:file:/C:/Program%20Files/JetBrains/IntelliJ%20IDEA%202018.3.4/plugins/DatabaseTools/lib/database-openapi.jar!/icons/col.svg" }, { "name" : "getNode", "desc" : "public com.intellij.lang.ASTNode com.intellij.psi.impl.FakePsiElement.getNode()", "value" : null }, { "name" : "getTextLength", "desc" : "public int com.intellij.psi.impl.FakePsiElement.getTextLength()", "value" : "0" }, { "name" : "getFirstChild", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.getFirstChild()", "value" : null }, { "name" : "getLastChild", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.getLastChild()", "value" : null }, { "name" : "getNextSibling", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.getNextSibling()", "value" : null }, { "name" : "getIcon", "desc" : "public final javax.swing.Icon com.intellij.psi.impl.FakePsiElement.getIcon(int)", "value" : null }, { "name" : "getPresentation", "desc" : "public com.intellij.navigation.ItemPresentation com.intellij.psi.impl.FakePsiElement.getPresentation()", "value" : "column:id" }, { "name" : "getTextOffset", "desc" : "public int com.intellij.psi.impl.FakePsiElement.getTextOffset()", "value" : "0" }, { "name" : "getPrevSibling", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.getPrevSibling()", "value" : null }, { "name" : "isPhysical", "desc" : "public boolean com.intellij.psi.impl.FakePsiElement.isPhysical()", "value" : "false" }, { "name" : "getTextRange", "desc" : "public com.intellij.openapi.util.TextRange com.intellij.psi.impl.FakePsiElement.getTextRange()", "value" : null }, { "name" : "findElementAt", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.FakePsiElement.findElementAt(int)", "value" : null }, { "name" : "getStartOffsetInParent", "desc" : "public int com.intellij.psi.impl.FakePsiElement.getStartOffsetInParent()", "value" : "0" }, { "name" : "textContains", "desc" : "public boolean com.intellij.psi.impl.FakePsiElement.textContains(char)", "value" : null }, { "name" : "textToCharArray", "desc" : "public char[] com.intellij.psi.impl.FakePsiElement.textToCharArray()", "value" : null }, { "name" : "getPresentableText", "desc" : "public java.lang.String com.intellij.psi.impl.FakePsiElement.getPresentableText()", "value" : "id" }, { "name" : "add", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.add(com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "replace", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.replace(com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "checkDelete", "desc" : "public void com.intellij.psi.impl.PsiElementBase.checkDelete() throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "delete", "desc" : "public void com.intellij.psi.impl.PsiElementBase.delete() throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "accept", "desc" : "public void com.intellij.psi.impl.PsiElementBase.accept(com.intellij.psi.PsiElementVisitor)", "value" : null }, { "name" : "getContext", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.getContext()", "value" : "table:book" }, { "name" : "copy", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.copy()", "value" : null }, { "name" : "addRange", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addRange(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "addBefore", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addBefore(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "addAfter", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addAfter(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "getReference", "desc" : "public com.intellij.psi.PsiReference com.intellij.psi.impl.PsiElementBase.getReference()", "value" : null }, { "name" : "getContainingFile", "desc" : "public com.intellij.psi.PsiFile com.intellij.psi.impl.PsiElementBase.getContainingFile()", "value" : null }, { "name" : "getOriginalElement", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.getOriginalElement()", "value" : "column:id" }, { "name" : "getNavigationElement", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.getNavigationElement()", "value" : "column:id" }, { "name" : "getUseScope", "desc" : "public com.intellij.psi.search.SearchScope com.intellij.psi.impl.PsiElementBase.getUseScope()", "value" : "Project and Libraries" }, { "name" : "getResolveScope", "desc" : "public com.intellij.psi.search.GlobalSearchScope com.intellij.psi.impl.PsiElementBase.getResolveScope()", "value" : "Project and Libraries" }, { "name" : "getReferences", "desc" : "public com.intellij.psi.PsiReference[] com.intellij.psi.impl.PsiElementBase.getReferences()", "value" : "[Lcom.intellij.psi.PsiReference;@140035ec" }, { "name" : "checkAdd", "desc" : "public void com.intellij.psi.impl.PsiElementBase.checkAdd(com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "addRangeBefore", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addRangeBefore(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "addRangeAfter", "desc" : "public com.intellij.psi.PsiElement com.intellij.psi.impl.PsiElementBase.addRangeAfter(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "findReferenceAt", "desc" : "public com.intellij.psi.PsiReference com.intellij.psi.impl.PsiElementBase.findReferenceAt(int)", "value" : null }, { "name" : "textMatches", "desc" : "public boolean com.intellij.psi.impl.PsiElementBase.textMatches(com.intellij.psi.PsiElement)", "value" : null }, { "name" : "textMatches", "desc" : "public boolean com.intellij.psi.impl.PsiElementBase.textMatches(java.lang.CharSequence)", "value" : null }, { "name" : "isEquivalentTo", "desc" : "public boolean com.intellij.psi.impl.PsiElementBase.isEquivalentTo(com.intellij.psi.PsiElement)", "value" : null }, { "name" : "deleteChildRange", "desc" : "public void com.intellij.psi.impl.PsiElementBase.deleteChildRange(com.intellij.psi.PsiElement,com.intellij.psi.PsiElement) throws com.intellij.util.IncorrectOperationException", "value" : null }, { "name" : "isNativeFileType", "desc" : "public static boolean com.intellij.psi.impl.ElementBase.isNativeFileType(com.intellij.openapi.fileTypes.FileType)", "value" : null }, { "name" : "overlayIcons", "desc" : "public static javax.swing.Icon com.intellij.psi.impl.ElementBase.overlayIcons(javax.swing.Icon...)", "value" : null }, { "name" : "buildRowIcon", "desc" : "public static com.intellij.ui.RowIcon com.intellij.psi.impl.ElementBase.buildRowIcon(javax.swing.Icon,javax.swing.Icon)", "value" : null }, { "name" : "transformFlags", "desc" : "public static int com.intellij.psi.impl.ElementBase.transformFlags(com.intellij.psi.PsiElement,int)", "value" : null }, { "name" : "createLayeredIcon", "desc" : "public static com.intellij.ui.RowIcon com.intellij.psi.impl.ElementBase.createLayeredIcon(com.intellij.openapi.util.Iconable,javax.swing.Icon,int)", "value" : null }, { "name" : "iconWithVisibilityIfNeeded", "desc" : "public static javax.swing.Icon com.intellij.psi.impl.ElementBase.iconWithVisibilityIfNeeded(int,javax.swing.Icon,javax.swing.Icon)", "value" : null }, { "name" : "registerIconLayer", "desc" : "public static void com.intellij.psi.impl.ElementBase.registerIconLayer(int,javax.swing.Icon)", "value" : null }, { "name" : "replace", "desc" : "public <T> boolean com.intellij.openapi.util.UserDataHolderBase.replace(com.intellij.openapi.util.Key<T>,T,T)", "value" : null }, { "name" : "getUserData", "desc" : "public <T> T com.intellij.openapi.util.UserDataHolderBase.getUserData(com.intellij.openapi.util.Key<T>)", "value" : null }, { "name" : "copyUserDataTo", "desc" : "public void com.intellij.openapi.util.UserDataHolderBase.copyUserDataTo(com.intellij.openapi.util.UserDataHolderBase)", "value" : null }, { "name" : "isUserDataEmpty", "desc" : "public boolean com.intellij.openapi.util.UserDataHolderBase.isUserDataEmpty()", "value" : "false" }, { "name" : "putUserData", "desc" : "public <T> void com.intellij.openapi.util.UserDataHolderBase.putUserData(com.intellij.openapi.util.Key<T>,T)", "value" : null }, { "name" : "getCopyableUserData", "desc" : "public <T> T com.intellij.openapi.util.UserDataHolderBase.getCopyableUserData(com.intellij.openapi.util.Key<T>)", "value" : null }, { "name" : "putCopyableUserData", "desc" : "public <T> void com.intellij.openapi.util.UserDataHolderBase.putCopyableUserData(com.intellij.openapi.util.Key<T>,T)", "value" : null }, { "name" : "copyCopyableDataTo", "desc" : "public void com.intellij.openapi.util.UserDataHolderBase.copyCopyableDataTo(com.intellij.openapi.util.UserDataHolderBase)", "value" : null }, { "name" : "getUserDataString", "desc" : "public java.lang.String com.intellij.openapi.util.UserDataHolderBase.getUserDataString()", "value" : "{CACHED_SMART_POINTER_KEY=com.intellij.reference.SoftReference@1e1e2d40}" }, { "name" : "putUserDataIfAbsent", "desc" : "public <T> T com.intellij.openapi.util.UserDataHolderBase.putUserDataIfAbsent(com.intellij.openapi.util.Key<T>,T)", "value" : null }, { "name" : "getTextRangeInParent", "desc" : "public default com.intellij.openapi.util.TextRange com.intellij.psi.PsiElement.getTextRangeInParent()", "value" : "(0,0)" }, { "name" : "getDbParent", "desc" : "public default com.intellij.database.model.DasObject com.intellij.database.model.DasObject.getDbParent()", "value" : "table:book" }, { "name" : "getDbChildren", "desc" : "public default <C> com.intellij.util.containers.JBIterable<C> com.intellij.database.model.DasObject.getDbChildren(java.lang.Class<C>,com.intellij.database.model.ObjectKind)", "value" : null }, { "name" : "getDependencies", "desc" : "public default java.lang.Object[] com.intellij.psi.meta.PsiMetaData.getDependencies()", "value" : "[Ljava.lang.Object;@4c90ae3f" }, { "name" : "getDependences", "desc" : "public default java.lang.Object[] com.intellij.psi.meta.PsiMetaData.getDependences()", "value" : "[Ljava.lang.Object;@4c90ae3f" } ], "----" : "-----------------我是一条华丽的分割线-----------------", "fieldList" : [ { "name" : "LOG", "type" : "com.intellij.openapi.diagnostic.Logger", "value" : "com.intellij.idea.IdeaLogger@689a33b9" }, { "name" : "WEIGHT_BASE", "type" : "int", "value" : "10000" }, { "name" : "WEIGHT_INC", "type" : "int", "value" : "1000" }, { "name" : "myParent", "type" : "com.intellij.database.psi.DbElement", "value" : "table:book" }, { "name" : "myDelegate", "type" : "java.lang.Object", "value" : "id: column" }, { "name" : "myTransactionalVersion", "type" : "long", "value" : "11" }, { "name" : "ASYNC_DOC_CUT", "type" : "java.lang.String", "value" : "<!-- async-doc-cut -->" }, { "name" : "LOG", "type" : "com.intellij.openapi.diagnostic.Logger", "value" : "com.intellij.idea.IdeaLogger@63538153" }, { "name" : "LOG", "type" : "com.intellij.openapi.diagnostic.Logger", "value" : "com.intellij.idea.IdeaLogger@57ae08e7" }, { "name" : "FLAGS_LOCKED", "type" : "int", "value" : "2048" }, { "name" : "ICON_COMPUTE", "type" : "com.intellij.util.NullableFunction", "value" : "com.intellij.psi.impl.ElementBase$$Lambda$705/682411935@622e87c4" }, { "name" : "VISIBILITY_ICON_PLACEHOLDER", "type" : "com.intellij.openapi.util.NotNullLazyValue", "value" : "com.intellij.psi.impl.ElementBase$1@5b1067c3" }, { "name" : "ICON_PLACEHOLDER", "type" : "com.intellij.openapi.util.NotNullLazyValue", "value" : "com.intellij.psi.impl.ElementBase$2@24b63ceb" }, { "name" : "ourIconLayers", "type" : "java.util.List", "value" : "[com.intellij.psi.impl.ElementBase$IconLayer@3f8e1aa, com.intellij.psi.impl.ElementBase$IconLayer@157e46b6, com.intellij.psi.impl.ElementBase$IconLayer@4d0815a5, com.intellij.psi.impl.ElementBase$IconLayer@58cc298b]" }, { "name" : "COPYABLE_USER_MAP_KEY", "type" : "com.intellij.openapi.util.Key", "value" : "COPYABLE_USER_MAP_KEY" }, { "name" : "myUserMap", "type" : "com.intellij.util.keyFMap.KeyFMap", "value" : "{CACHED_SMART_POINTER_KEY=com.intellij.reference.SoftReference@1e1e2d40}" }, { "name" : "updater", "type" : "com.intellij.util.concurrency.AtomicFieldUpdater", "value" : "com.intellij.util.concurrency.AtomicFieldUpdater@1c7d7689" } ] } //调试列原始列类型 { "title" : "调试:com.intellij.database.model.DataType", "methodList" : [ { "name" : "getLength", "desc" : "public int com.intellij.database.model.DataType.getLength()", "value" : "11" }, { "name" : "getScale", "desc" : "public int com.intellij.database.model.DataType.getScale()", "value" : "0" }, { "name" : "getPrecision", "desc" : "public int com.intellij.database.model.DataType.getPrecision()", "value" : "11" }, { "name" : "getSpecification", "desc" : "public java.lang.String com.intellij.database.model.DataType.getSpecification()", "value" : "int(11)" }, { "name" : "getSpecification", "desc" : "public java.lang.String com.intellij.database.model.DataType.getSpecification(boolean,boolean)", "value" : null }, { "name" : "equalsWithoutJdbc", "desc" : "public boolean com.intellij.database.model.DataType.equalsWithoutJdbc(com.intellij.database.model.DataType)", "value" : null } ], "----" : "-----------------我是一条华丽的分割线-----------------", "fieldList" : [ { "name" : "MAX_SIZE", "type" : "int", "value" : "2147483647" }, { "name" : "STAR_SIZE", "type" : "int", "value" : "2147483646" }, { "name" : "NO_SIZE", "type" : "int", "value" : "-1" }, { "name" : "NO_SCALE", "type" : "int", "value" : "0" }, { "name" : "UNKNOWN", "type" : "com.intellij.database.model.DataType", "value" : "unknown" }, { "name" : "schemaName", "type" : "java.lang.String", "value" : null }, { "name" : "packageName", "type" : "java.lang.String", "value" : null }, { "name" : "typeName", "type" : "java.lang.String", "value" : "int" }, { "name" : "size", "type" : "int", "value" : "11" }, { "name" : "scale", "type" : "int", "value" : "0" }, { "name" : "sizeUnit", "type" : "com.intellij.database.model.LengthUnit", "value" : "com.intellij.database.model.LengthUnit@257447ef" }, { "name" : "vagueArg", "type" : "java.lang.String", "value" : null }, { "name" : "suffix", "type" : "java.lang.String", "value" : null }, { "name" : "sizeUnitExplicit", "type" : "boolean", "value" : "false" }, { "name" : "custom", "type" : "boolean", "value" : "false" }, { "name" : "enumValues", "type" : "java.util.List", "value" : null }, { "name" : "jdbcType", "type" : "int", "value" : "0" } ] } //获取原始列类型中的字段 sqlType = int //执行原始列类型中的方法 sqlTypeLen = 11
新手小白提问求各位大神解答 java
右边是我的 哪错了帮忙纠正一下 谢谢 显示错误需要class interface enum![图片说明](https://img-ask.csdn.net/upload/201611/21/1479743995_20947.png)
java这个错误怎么解决?
需要class, interface或enum 锘縤mport java.io.*; import java.io.*; import java.text.DecimalFormat; import java.util.*; public class Test3 { public static void main(String[] args) { File in = new File("C:/student.csv"); FileWriter fw = null; BufferedReader br = null; if (!in.exists()) { System.out.println(""); return; } try { br = new BufferedReader(new FileReader(in)); String temp; List<Student> list = new ArrayList<Student>(); while ((temp = br.readLine()) != null) { String[] data = temp.split(","); Student st = new Student(); st.setStudNo(data[0]); st.setName(data[1]); st.setMathScore(Double.parseDouble(data[2])); st.setEnglishScore(Double.parseDouble(data[3])); st.setComputerScore(Double.parseDouble(data[4])); list.add(st); } br.close(); // 降序排序 Collections.sort(list, Collections.reverseOrder()); fw = new FileWriter("C:/student2.csv"); DecimalFormat df = new DecimalFormat("##0.##"); for (Student s : list) { fw.write(s.getStudNo()); fw.write(","); fw.write(s.getName()); fw.write(","); fw.write(df.format(s.getMathScore())); fw.write(","); fw.write(df.format(s.getEnglishScore())); fw.write(","); fw.write(df.format(s.getComputerScore())); fw.write(","); fw.write(df.format(s.getAvgScore())); fw.write("\n"); } System.out.println("output OK"); } catch (Exception e) { e.printStackTrace(); } finally { try { if (br != null) { br.close(); } if (fw != null) { fw.close(); } } catch (IOException e) { e.printStackTrace(); } } } } class Student{ String Name; String studno; Double mathScore; Double englishScore; Double computerScore; Double avgScore; void setName(String sName){ Name=sName; } void setStudNo(String sNo){ studno=sNo; } void setMathScore(Double dmathScore){ mathScore=dmathScore; } void setEnglishScore(Double denglishScore){ englishScore=denglishScore; } void setComputerScore(Double dcomputerScore){ computerScore=dcomputerScore; } void setavgScore(){ avgScore=(mathScore+englishScore+computerScore)/3; } String getName(){ return Name; } String getStudNo(){ return studno; } Double getMathScore(){ return mathScore; } Double getEnglishScore(){ return englishScore; } Double getComputerScore(){ return computerScore; } Double getAvgScore(){ return avgScore; } }
实在不会了 请高人帮忙
不论怎么弄 都不行 到底哪出错啊 #include <stdio.h> main(){ int n,m; m=5; n=(m++)+(m++)+(m++); printf("%f\n",n); } 編譯失敗(CE) time: 0 memory: 0 signal:0 Main.java:1: error: illegal character: '#' #include <stdio.h> ^ Main.java:1: error: class, interface, or enum expected #include <stdio.h> ^ Main.java:4: error: class, interface, or enum expected m=5; ^ Main.java:5: error: class, interface, or enum expected n=(m++)+(m++)+(m++); ^ Main.java:6: error: class, interface, or enum expected printf("%f\n",n); ^ Main.java:7: error: class, interface, or enum expected } ^ 6 errors 谢谢大家帮忙 终于弄明白了 还想再问一个 n=(m++)+(m++)+(m++); 算出来是18 n=(++m)+(++m)+(++m); 算出来怎么是22啊 怎么算的啊?
java 测试类中如何调用scanner
class Phone{ private double weight; private double length; private double width; private double high; private int worth; private String brand; private String version; private String monitor; private String net; private int ram; public double getWeight(){ return weight; } public void setWeight(double weight){ this.weight=weight; } public double getLength(){ return length; } public void setLength(double length){ this.length=length; } public double getWidth(){ return width; } public void setWidth(double width){ this.width=width; } public double getHigh(){ return high; } public void setHigh(double high){ this.high=high; } public int getWorth(){ return worth; } public void setWorth(int worth){ this.worth=worth; } public String getBrand(){ return brand; } public void setBrand(String brand){ this.brand=brand; } public String getVersion(){ return version; } public void setVersion(String version){ this.version=version; } public String getMonitor(){ return monitor; } public void setMonitor(String monitor){ this.monitor=monitor; } public String getNet(){ return net; } public void setNet(String net){ this.net=net; } public int getRam(){ return ram; } public void setRam(int ram){ this.ram=ram; } public void show(){ System.out.println("品牌:"+brand); System.out.println("版本:"+version); System.out.println("长度:"+length+"mm"); System.out.println("宽度:"+width+"mm"); System.out.println("高度:"+high+"mm"); System.out.println("重量:"+weight+"g"); System.out.println("价格:"+worth+"¥"); System.out.println("主屏参数:"+monitor); System.out.println("网络制式:"+net); System.out.println("内存容量:"+ram+"M"); } } import.java.util.*;//编译在这里报错,缺少class interface或enum class Nokia{ public static void main(String[]agrs){ Phone p=new Phone(); p.setBrand("Nokia"); p.setVersion("7210C Series 40 5th Edition, Feature Pack 1"); p.setWorth(850); p.setLength(106.0); p.setWidth(45.1); p.setHigh(10.6); p.setWeight(88.8); p.setMonitor("26万色,QVGA,240×320像素,2.0英寸"); p.setNet("GSM 900/1800/1900,EDGE"); p.setRam(30); p.show(); } }
Android中关于标注的问题,标注起到什么作用
package util.sql; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) public @interface SqlField { public KeyType type( ) default KeyType.NOT_KEY; enum KeyType { NOT_KEY, PRIMARY_KEY, AUTO_INCREMENT_KEY } } 之后比如在某个对象类中用到起什么作用 public class Student{ @SqlField( type=KeyType.AUTO_INCREMENT_KEY) public int id; @SqlField public float score; @SqlField public int sex; @SqlField public String num; 。。。。。}
springboot2.1.4 + jpa + hibernate 使用aop注解形式实现多数据源管理 可能懒加载出现问题求大神解答
最近项目中使用springboot2.1.4 + jpa + hibernate 使用aop注解形式实现多数据源管理,用的就是网上大多数人使用的一套代码,但是我在项目中使用后发现如果配置 spring配置文件 application.yml 中open-in-view: false 跨数据源查询正常,但是保存或者修改失败原因是事务没有提交,一旦把open-in-view改成true则不能跨数据源查询,修改保存正常事务正常提交求解,具体代码如下实现 1. application.yml ``` spring: ## 数据库配置 #datasource: #driver-class-name: com.mysql.jdbc.Driver #url: jdbc:mysql://192.168.101.125:3306/cdv?useSSL=false&characterEncoding=utf-8 #username: root #password: 123456 #url: jdbc:mysql://127.0.0.1:3306/boot-jpa-back-sys2?useSSL=false&characterEncoding=utf-8 #username: root #password: datasource: test1: driver-class-name: com.mysql.jdbc.Driver jdbc-url: jdbc:mysql://192.168.101.125:3306/cdv?useSSL=false&characterEncoding=utf-8 username: root password: 123456 type: com.alibaba.druid.pool.DruidDataSource test2: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc-url: jdbc:sqlserver://192.168.101.125:1433;database=Test; username: sa password: Zqvideo123 type: com.alibaba.druid.pool.DruidDataSource ## jpa配置 jpa: show-sql: true hibernate: #ddl-auto: update properties: hibernate.dialect: com.common.mysql.MySQLDialectUTF8 hibernate.format_sql: false open-in-view: false ``` DataSourceAsepct ``` package com.common.db; import java.lang.reflect.Method; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.aspectj.lang.reflect.MethodSignature; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; @Aspect @Component @Order(0) public class DataSourceAsepct { //加载数据源 @Pointcut("@annotation(com.common.db.DataSourceSet)") // @AfterThrowing(pointcut="@annotation(com.common.db.DataSource)", throwing= "error") public void pointCut(){ } @Before("pointCut()") public void before(JoinPoint joinPoint) { Object target = joinPoint.getTarget(); MethodSignature signature = (MethodSignature) joinPoint.getSignature(); DataSourceEnum dataSource = DataSourceEnum.DEFAULT; try { Method method = target.getClass().getMethod(signature.getName(), signature.getParameterTypes()); if (method.isAnnotationPresent(DataSourceSet.class)) { DataSourceSet annotation = method.getAnnotation(DataSourceSet.class); dataSource = annotation.value(); } } catch (NoSuchMethodException e) { e.printStackTrace(); } //实现aop切换数据源 System.out.println("aop切换数据源:" + dataSource.getName()); DataSourceHolder.setDataSource(dataSource); } // @After("pointCut()") @AfterThrowing(pointcut="@annotation(com.common.db.DataSourceSet)", throwing= "error") public void after() { DataSourceHolder.clearDataSource(); String v = DataSourceHolder.getDataSource(); System.out.println(v); } } ``` DataSourceConfig ``` package com.common.db; import java.util.HashMap; import java.util.Map; import javax.sql.DataSource; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import org.springframework.transaction.PlatformTransactionManager; import org.springframework.transaction.jta.JtaTransactionManager; @Configuration public class DataSourceConfig { //连接数据库db1 @Bean("test1") @ConfigurationProperties("spring.datasource.test1") public DataSource test1() { return DataSourceBuilder.create().build(); } //连接数据库db2 @Bean("test2") @ConfigurationProperties("spring.datasource.test2") public DataSource test2() { return DataSourceBuilder.create().build(); } @Bean("dynamicDataSource") @Primary public DataSource dynamicDataSource() { DynamicDataSource dataSource = new DynamicDataSource(); dataSource.setDefaultTargetDataSource(test1()); Map<Object, Object> dataSourceMap = new HashMap<>(2); dataSourceMap.put(DataSourceEnum.TEST1.getName(), test1()); dataSourceMap.put(DataSourceEnum.TEST2.getName(), test2()); dataSource.setTargetDataSources(dataSourceMap); return dataSource ; } @Bean public PlatformTransactionManager transactionManager() { return new DataSourceTransactionManager(dynamicDataSource()); } } ``` DataSourceEnum ``` package com.common.db; import lombok.AllArgsConstructor; import lombok.Getter; @AllArgsConstructor @Getter public enum DataSourceEnum { DEFAULT("test1"), TEST1("test1"), TEST2("test2"); private String name; } ``` DataSourceHolder ``` package com.common.db; public class DataSourceHolder { private static final ThreadLocal<String> DS_HOLDER = new ThreadLocal<>(); public static void setDataSource(DataSourceEnum dataSource) { DS_HOLDER.set(dataSource.getName()); } public static String getDataSource() { return DS_HOLDER.get(); } public static void clearDataSource() { DS_HOLDER.remove(); } } ``` DataSourceSet ``` package com.common.db; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Documented public @interface DataSourceSet { //枚举 DataSourceEnum value(); } ``` DynamicDataSource ``` package com.common.db; import org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource; public class DynamicDataSource extends AbstractRoutingDataSource { @Override protected Object determineCurrentLookupKey() { //基于aop切换数据源 System.out.println("dynamic datasource 切换数据源" + DataSourceHolder.getDataSource()); return DataSourceHolder.getDataSource(); } } ``` 测试调用 ``` server层 @Override @DataSourceSet(DataSourceEnum.TEST1) public String test1(Long id) { String s = programRepository.findids(id); System.out.println(s); return s; } @Override @DataSourceSet(DataSourceEnum.TEST2) public String test2(Long id) { String s = testRepository.findids1(id); System.out.println(s); return s; } ``` ``` Controller层 @PostMapping("/test") @ResponseBody public ResultVo test(Long id) { id = 1l; String beProgram1 = programService.test1(id); System.out.println(222); id=2l; String beProgram = testService.test2(id); System.out.println(333); return ResultVoUtil.success(beProgram+beProgram1); } ```
android 混淆报错 请看图片
# To enable ProGuard in your project, edit project.properties # to define the proguard.config property as described in that file. # # Add project specific ProGuard rules here. # By default, the flags in this file are appended to flags specified # in ${sdk.dir}/tools/proguard/proguard-android.txt # You can edit the include path and order by changing the ProGuard # include property in project.properties. # # For more details, see # http://developer.android.com/guide/developing/tools/proguard.html # Add any project specific keep options here: # If your project uses WebView with JS, uncomment the following # and specify the fully qualified class name to the JavaScript interface # class: #-keepclassmembers class fqcn.of.javascript.interface.for.webview { # public *; #} #代码混淆压缩比例 -optimizationpasses 5 #混淆时不使用大小写混合,混淆后的类名为小写 -dontusemixedcaseclassnames #指定不去忽虑非公共的库的类 -dontskipnonpubliclibraryclasses #指定不去忽虑非公共的库的类的成员 -dontskipnonpubliclibraryclassmembers #不做预校验,preverify是proguard的四个步骤之一 #Android不需要preverify,去掉这一步可加快混淆速度 -dontpreverify #有了verbose这句话,混淆后就会产生映射文件 #包含有类名 -> 混淆后类名的映射关系 -verbose -printmapping priguardMapping.txt #指定混淆时采用的算法,后面的参数是一个过滤器 #这个过滤器是谷歌推荐的算法,一般不改变 -optimizations !code/simplification/artithmetic,!field/*,!class/merging/* #保护代码中的Annotation不被混淆 #这在JSON实体映射时非常重要,比如fastJson -keepattributes *Annotation* #避免混淆泛型 #这在JSON实体映射时非常重要,比如fastJson -keepattributes Signature #抛出异常时保留代码行号 -keepattributes Exceptions,InnerClasses,Signature,Deprecated, SourceFile,LineNumberTable,EnclosingMethod #保留所有的本地native方法不被混淆 -keepclasseswithmembernames class * { native <methods>; } #保留了继承Activity,Application这些类的子类 # 比如第一行就保证了所有Activity的子类不要被混淆 -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.view.View -keep public class com.android.vending.licensing.ILicensingService #保留Activity中的方法参数是view的方法 #从而是我在layout里面编写onClick就不会被影响 -keepclassmembers class * extends android.app.Activity{ public void *(android.view.View); } #枚举类不被混淆 -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } # 保留自定义控件(继承自View)不能被混淆 -keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(***); *** get* (); } # 保留Parcelable序列化的类不能被混淆 -keep class * implements android.os.Parcelable{ public static final android.os.Parcelable$Creator *; } # 保留Serializable 序列化的类不被混淆 -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; !static !transient <fields>; private void writeObject(java.io.ObjectOutputStream); private void readObject(java.io.ObjectInputStream); java.lang.Object writeReplace(); java.lang.Object readResolve(); } # 对R文件下的所有类及其方法,都不能被混淆 -keepclassmembers class **.R$* { *; } # 对于带有回调函数onXXEvent的,不能混淆 -keepclassmembers class * { void *(**On*Event); } #实体类不参与混淆全部忽略 -keep class com.lefu.puhui.bases.newwork.reqmodel.** {*; } -keep class com.lefu.puhui.bases.newwork.respmodel.** { *; } -keep class com.lefu.puhui.bases.update.entity.Channel { *; } -keep class com.lefu.puhui.bases.UserInfo {*;} -keep class com.lefu.puhui.bases.GladlyStuLoan {*;} -keep class com.lefu.puhui.bases.utils.CiphersUtil {*;} -keep class com.lefu.puhui.bases.utils.SignMd5Util {*;} -keep class com.lefu.puhui.bases.utils.MyToast {*;} -keep class com.lefu.puhui.bases.utils.GenerateDeviceUniqueID {*;} -keep class com.lefu.puhui.bases.utils.DataCleanManager {*;} -keep class com.lefu.puhui.bases.utils.ViewHolder {*;} -keep class com.lefu.puhui.models.home.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.home.network.respmodel.** { *; } -keep class com.lefu.puhui.models.main.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.main.network.respmodel.** { *; } -keep class com.lefu.puhui.models.makemoney.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.makemoney.network.respmodel.** { *; } -keep class com.lefu.puhui.models.more.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.more.network.respmodel.** { *; } -keep class com.lefu.puhui.models.personalcenter.network.reqmodel.** { *; } -keep class com.lefu.puhui.models.personalcenter.network.respmodel.** { *; } #BaseFramework -keep class com.bfec.BaseFramework.libraries.common.model.AccessResult {*;} -keep class * extends com.bfec.BaseFramework.libraries.common.model.AccessResult {*;} -keep class com.bfec.BaseFramework.libraries.common.model.RequestModel {*;} -keep class * extends com.bfec.BaseFramework.libraries.common.model.RequestModel {*;} -keep class com.bfec.BaseFramework.libraries.common.model.ResponseModel {*;} -keep class * extends com.bfec.BaseFramework.libraries.common.model.ResponseModel {*;} # AMap_Location_V2.4.0 -libraryjars libs/AMap_Location_V2.4.0_20160308.jar -keep class com.amap.** {*;} -keep class com.autonavi.** {*;} -keep class com.loc.** {*;} -dontwarn com.amap.** -dontwarn com.autonavi.** -dontwarn com.loc.** #android-support-v4 -libraryjars ../BaseFramework/libs/android-support-v4.jar -keep class android.support.v4.** {*;} -keep interface android.support.v4.** {*;} -keep public class * extends android.support.v4.** {*;} -dontwarn android.support.v4.** -dontwarn android.support.annotaion.** #bugly_crash_release__2.1.5 -libraryjars libs/bugly_crash_release__2.1.5.jar -dontwarn com.tencent.bugly.** -keep public class com.tencent.bugly.**{*;} #butterknife -libraryjars libs/ButterKnife_v7.0.1.jar -keep class butterknife.** { *; } -dontwarn butterknife.internal.** -keep class **$$ViewBinder { *; } -keepclasseswithmembernames class * { @butterknife.* <fields>; } -keepclasseswithmembernames class * { @butterknife.* <methods>; } #commons-codec-1.10 -libraryjars libs/commons-codec-1.10.jar -keep class org.apache.** { *; } #CommonUtil-1.0.8 -libraryjars libs/CommonUtil-1.0.8.jar -keep class com.pay.** { *; } -dontwarn com.pay.** #jpush-android-2.1.3 -libraryjars libs/jpush-android-2.1.3.jar -dontoptimize -dontwarn cn.jpush.** -keep class cn.jpush.** { *; } -dontwarn com.google.** -keep class com.google.gson.** {*;} -dontwarn com.google.** -keep class com.google.protobuf.** {*;} #mta-sdk-1.6.2 -keep class com.tencent.** { *; } #pinyin4j -libraryjars libs/pinyin4j-2.5.0.jar -dontwarn net.soureceforge.pinyin4j.** -dontwarn demo.** -keep class net.sourceforge.pinyin4j.** { *;} -keep class demo.** { *;} #umeng -libraryjars libs/umeng_social_sdk.jar -dontwarn com.umeng.** -keep class com.umeng*.** {*; } #niversal-image-loader -libraryjars libs/Universal_Image_Loader_v1.9.4.jar -keep class com.nostra13.universalimageloader.** {*;} -dontwarn com.nostra13.universalimageloader.** #微博报下所有类及类里面的内容都不要混淆 -keep class com.sina.weibo.sdk.** { *; } # Gson -libraryjars ../BaseFramework/libs/gson.jar -keep class sun.misc.Unsafe {*;} -keep class com.google.gson.** {*;} -keep interface com.google.gson.** {*;} -dontwarn com.google.gson.** #httpmime -libraryjars ../WelabSDK/libs/httpmime-4.1.1.jar -keep class org.apache.http.** {*;} -dontwarn org.apache.http.** #LitePal -libraryjars ../BaseFramework/libs/litepal.jar -dontwarn org.litepal.* -keep class org.litepal.** { *; } -keep enum org.litepal.** -keep interface org.litepal.** { *; } -keep public class * extends org.litepal.** -keepclassmembers class * extends org.litepal.crud.DataSupport{ *; } #pulltorefresh -libraryjars ../Library -dontwarn com.handmark.pulltorefresh.library.** -keep class com.handmark.pulltorefresh.library.** { *;} -dontwarn com.handmark.pulltorefresh.library.extras.** -keep class com.handmark.pulltorefresh.library.extras.** { *;} -dontwarn com.handmark.pulltorefresh.library.internal.** -keep class com.handmark.pulltorefresh.library.internal.** { *;} #fastjson -libraryjars ../WelabSDK/libs/fastjson-1.1.45.android.jar -keep class com.alibaba.fastjson.** { *; } -dontwarn com.alibaba.fastjson.** #org.apache.http.legacy -libraryjars ../WelabSDK/libs/org.apache.http.legacy.jar -keep class android.net.compatibility.** {*;} -keep class android.net.http.** {*;} -keep class com.android.internal.http.multipart.** {*;} -keep class org.apache.** {*;} -dontwarn android.net.** -dontwarn org.apache.http.** #PersonalSocialReportSDK -libraryjars ../WelabSDK/libs/PersonalSocialReportSDK.jar -dontwarn info.kuaicha.** #jna-min -libraryjars ../WelabFaceCheck/libs/jna-min.jar -dontwarn com.sun.** -keep class com.sun.jna.Native -ignorewarnings ![图片说明](https://img-ask.csdn.net/upload/201606/16/1466066181_83691.png)
proguard配置问题,求解析
# 通过指定数量的优化能执行 -optimizationpasses 5 # 混淆时不会产生形形色色的类名 -dontusemixedcaseclassnames # 指定不去忽略非公共的库类 -dontskipnonpubliclibraryclasses # 不预校验 -dontpreverify # 优化选项 -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class com.android.vending.licensing.ILicensingService -keepclasseswithmembernames class * { native <methods>; } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet); } -keepclasseswithmembers class * { public <init>(android.content.Context, android.util.AttributeSet, int); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } #-------------------------- # 保护类型 -keepattributes 说明 # Exceptions, Signature, Deprecated, SourceFile, SourceDir, LineNumberTable, LocalVariableTable, # LocalVariableTypeTable, Synthetic, EnclosingMethod, RuntimeVisibleAnnotations, RuntimeInvisibleAnnotations, # RuntimeVisibleParameterAnnotations, RuntimeInvisibleParameterAnnotations, and AnnotationDefault # -------------------- -keepattributes ** -libraryjars <java.home>/lib/rt.jar #第三方类库 -dontwarn android.** -keep class android.** {*;} -dontwarn com.baidu.** -keep class com.baidu.** {*;} -dontwarn com.tencent.** -keep class com.tencent.** {*;} -dontwarn com.lidroid.** -keep class com.lidroid.** {*;} -dontwarn com.sina.** -keep class com.sina.** {*;} -dontwarn com.weibo.** -keep class com.weibo.** {*;} -dontwarn com.baidu.mapapi.** -keep class com.baidu.mapapi.** {*;} -dontwarn android.webkit.** -keep class android.webkit.**{*;} -dontwarn android.net.http.** -keep class android.net.http.** { *;} -libraryjars libs/android-support-v4.jar -dontwarn android.support.v4.** -keep class android.support.v4.** { *; } -keep interface android.support.v4.app.** { *; } # 删除Log代码 -assumenosideeffects class android.util.Log { public static *** v(...); public static *** i(...); public static *** d(...); public static *** w(...); public static *** e(...); } com.android.ide.eclipse.adt.internal.build.DexException: Conversion to Dalvik format failed with error 1 at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:825) at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:274) at com.android.ide.eclipse.adt.internal.project.ExportHelper$2.run(ExportHelper.java:373) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) java.lang.IllegalStateException: Could not remove /projectName/bin/res/crunch/drawable-hdpi/ic_launcher.png at org.tigris.subversion.subclipse.core.resourcesListeners.RevertResourceManager$RevertWorkspaceJob.revertResources(RevertResourceManager.java:65) at org.tigris.subversion.subclipse.core.resourcesListeners.RevertResourceManager$RevertWorkspaceJob.runInWorkspace(RevertResourceManager.java:85) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54) [小黑oschina博客](http://www.oschina.net/question/1376052_245779 "")
android studio 混淆文件配置
![据说android studio 默认将libs的第三方jar包忽略混淆,所以就没有将类似#-libraryjars libs/umeng-analytics-v5.2.4.jar的操作写入到配置文件,只是将-keep class com.umeng.**{*;}和忽略警告的操作写入配置文件。但是发现gradle在.idea/libraries中引入了其他很多jar包以及这些包的存储地址。刚好程序报错中的com.b.a.a.a 就是指的idea/libraries中的一个包中的类,即为com.loopj.android.http.AsyncHttpClient,不知道怎么在混淆配置文件中忽略这些包的混淆。最后通过配置,发现这些包还是被混淆了,不知道怎么才能配置好这些包不被混淆](https://img-ask.csdn.net/upload/201511/10/1447140316_8891.jpg) 下面是我的配置文件: -optimizationpasses 5 -dontusemixedcaseclassnames -verbose -dontpreverify -optimizations !code/simplification/arithmetic,!field/*,!class/merging/* -keepattributes *Annotation* -keepattributes Signature -keep class android.**{*;} -keep public class * extends android.view -keep public class * extends android.app.Fragment -keep public class * extends android.app.Activity -keep public class * extends android.app.Application -keep public class * extends android.app.Service -keep public class * extends android.content.BroadcastReceiver -keep public class * extends android.content.ContentProvider -keep public class * extends android.app.backup.BackupAgentHelper -keep public class * extends android.preference.Preference -keep public class * extends android.support.V4.** -keep public class * extends android.vending.licensing.ILicensingService -dontwarn android.support.v4.** -keep class * extends android.support.v4.**{*;} -dontwarn android.support.v7.** -keep class * extends android.support.v7.**{*;} /* 将libs文件下的三方包忽略混淆*/ -keep class com.mob.logcolletor.**{ *;} -dontwarn com.mob.tools.** -keep class com.mob.tools.**{ *;} -dontwarn com.mob.baidu.** -keep class com.mob.baidu.**{ *;} -dontwarn cn.sharesdk.framework.** -keep class cn.sharesdk.framework.**{ *;} -dontwarn cn.sharesdk.system.email.** -keep class cn.sharesdk.system.email.**{ *;} -dontwarn cn.sharesdk.tencent.qq.** -keep class cn.sharesdk.tencent.qq.**{ *;} -dontwarn cn.sharesdk.system.text.** -keep class cn.sharesdk.system.text.**{ *;} -dontwarn cn.sharesdk.wechat.friends.** -keep class cn.sharesdk.wechat.friends.**{ *;} -dontwarn cn.sharesdk.wechat.utils.** -keep class cn.sharesdk.wechat.utils.**{ *;} -dontwarn cn.sharesdk.wechat.favorite.** -keep class cn.sharesdk.wechat.favorite.**{ *;} -dontwarn cn.sharesdk.wechat.moments.** -keep class cn.sharesdk.wechat.moments.**{ *;} -dontwarn com.tencent.** -keep class com.tencent..**{ *;} -keep public interface com.mob.logcolletor.** -keep public interface com.mob.tools.** -keep public interface com.mob.baidu.** -keep public interface cn.sharesdk.framework.** -keep public interface cn.sharesdk.system.email.** -keep public interface cn.sharesdk.tencent.qq.** -keep public interface cn.sharesdk.system.text.** -keep public interface cn.sharesdk.wechat.friends.** -keep public interface cn.sharesdk.wechat.utils.** -keep public interface cn.sharesdk.wechat.favorite.** -keep public interface cn.sharesdk.wechat.moments.** -keepclasseswithmembernames class * { native <methods>; } -keepclassmembers public class * extends android.view.View { void set*(***); *** get*(); } -keepclasseswithmembernames class * { void onClick*(...); } -keepclasseswithmembernames class * { *** *Callback(...); } -keepclasseswithmembernames class * { public <init>(android.content.Context,android.util.AttributeSet,int); } -keepclasseswithmembernames class * { public <init>(android.content.Context,android.util.AttributeSet); } -keepclassmembers class * extends android.app.Activity { public void *(android.view.View); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keep class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *; } -keep class org.apache.http.**{*;} -keepclassmembers class **.R$* { public static <fields>; } /* 将External Libraries文件下的三方包忽略混淆*/ -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.8/77bbfe240e437ecb396d982afa0d3bd4f9090ba7/android-async-http-1.4.8.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.loopj.android/android-async-http/1.4.8/ec314dce534e83c93364388d023625bb8e605e38/android-async-http-1.4.8-sources.jar! -libraryjars build/intermediates/exploded-aar/com.soundcloud.android/android-crop/1.0.0/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/appcompat-v7/23.0.0/appcompat-v7-23.0.0-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/7.0.1/d5d13ea991eab0252e3710e5df3d6a9d4b21d461/butterknife-7.0.1.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/7.0.1/ad53343e57ae0969aaf451a19eef381abe2ad3a1/butterknife-7.0.1-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/cardview-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/cardview-v7/23.0.0/cardview-v7-23.0.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/design/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.6.1/86b122e640af09b0723e1fa44083c354ba6d9089/glide-3.6.1.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.github.bumptech.glide/glide/3.6.1/c84c6f18844d9ae76308619008d40277de5e77d3/glide-3.6.1-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.3/5fc52c41ef0239d1093a1eb7c3697036183677ce/gson-2.3.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.google.code.gson/gson/2.3/21e31b9298ed677b17fcac6dd0eb0a82ec35adc2/gson-2.3-sources.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/31fbbff1ddbf98f3aa7377c94d33b0447c646b6e/httpcore-4.3.2.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents/httpcore/4.3.2/4809f38359edeea9487f747e09aa58ec8d3a54c5/httpcore-4.3.2-sources.jar -libraryjars build/intermediates/exploded-aar/com.rengwuxian.materialedittext/library/2.1.4/jars/classes.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.nineoldandroids/library/2.4.0/e9b63380f3a242dbdbf103a2355ad7e43bad17cb/library-2.4.0.jar -libraryjars $USER_HOME$/.gradle/caches/modules-2/files-2.1/com.nineoldandroids/library/2.4.0/83d41901478fa8795254244acbafd03f14224dab/library-2.4.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.orhanobut/logger/1.10/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/recyclerview-v7/23.0.0/jars/classes.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/recyclerview-v7/23.0.0/recyclerview-v7-23.0.0-sources.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-annotations/23.0.0/support-annotations-23.0.0.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-annotations/23.0.0/support-annotations-23.0.0-sources.jar -libraryjars build/intermediates/exploded-aar/com.android.support/support-v4/23.0.0/jars/classes.jar -libraryjars build/intermediates/exploded-aar/com.android.support/support-v4/23.0.0/jars/libs/internal_impl-23.0.0.jar -libraryjars $USER_HOME$/Documents/androidWorkSpace/android-sdk-macosx/extras/android/m2repository/com/android/support/support-v4/23.0.0/support-v4-23.0.0-sources.jar -dontwarn com.loopj.android.http.** -keep class com.loopj.android.http.**{ *;} -dontwarn com.baidu.** -keep class com.baidu.**{ *;} -dontwarn com.bumptech.glide.** -keep class com.bumptech.glide.**{ *;} -dontwarn com.google.gson.** -keep class com.google.gson.http.**{ *;} -dontwarn com.nineoldandroids.** -keep class com.nineoldandroids.**{ *;} -dontwarn com.orhanobut.logger.** -keep class com.orhanobut.logger.**{ *;} -dontwarn com.rengwuxian.materialedittext.** -keep class com.rengwuxian.materialedittext.**{ *;} -dontwarn com.soundcloud.android.crop.** -keep class com.soundcloud.android.crop.**{ *;} -ignorewarning -dump class_files.txt -printseeds seeds.txt -printusage unused.txt -printmapping mapping.txt
struts2 scope类语法问题
package com.opensymphony.xwork2.inject; import java.util.concurrent.Callable; public enum Scope { DEFAULT { @Override <T> InternalFactory<? extends T> scopeFactory(Class<T> type, String name, InternalFactory<? extends T> factory) { return factory; } }, SINGLETON { @Override <T> InternalFactory<? extends T> scopeFactory(Class<T> type, String name, final InternalFactory<? extends T> factory) { return new InternalFactory<T>() { T instance; public T create(InternalContext context) { synchronized (context.getContainer()) { if (instance == null) { instance = factory.create(context); } return instance; } } @Override public String toString() { return factory.toString(); } }; } }, THREAD { @Override <T> InternalFactory<? extends T> scopeFactory(Class<T> type, String name, final InternalFactory<? extends T> factory) { return new InternalFactory<T>() { final ThreadLocal<T> threadLocal = new ThreadLocal<T>(); public T create(final InternalContext context) { T t = threadLocal.get(); if (t == null) { t = factory.create(context); threadLocal.set(t); } return t; } @Override public String toString() { return factory.toString(); } }; } }, REQUEST { @Override <T> InternalFactory<? extends T> scopeFactory(final Class<T> type, final String name, final InternalFactory<? extends T> factory) { return new InternalFactory<T>() { public T create(InternalContext context) { Strategy strategy = context.getScopeStrategy(); try { return strategy.findInRequest( type, name, toCallable(context, factory)); } catch (Exception e) { throw new RuntimeException(e); } } @Override public String toString() { return factory.toString(); } }; } }, SESSION { @Override <T> InternalFactory<? extends T> scopeFactory(final Class<T> type, final String name, final InternalFactory<? extends T> factory) { return new InternalFactory<T>() { public T create(InternalContext context) { Strategy strategy = context.getScopeStrategy(); try { return strategy.findInSession( type, name, toCallable(context, factory)); } catch (Exception e) { throw new RuntimeException(e); } } @Override public String toString() { return factory.toString(); } }; } }, WIZARD { @Override <T> InternalFactory<? extends T> scopeFactory(final Class<T> type, final String name, final InternalFactory<? extends T> factory) { return new InternalFactory<T>() { public T create(InternalContext context) { Strategy strategy = context.getScopeStrategy(); try { return strategy.findInWizard( type, name, toCallable(context, factory)); } catch (Exception e) { throw new RuntimeException(e); } } @Override public String toString() { return factory.toString(); } }; } }; <T> Callable<? extends T> toCallable(final InternalContext context, final InternalFactory<? extends T> factory) { return new Callable<T>() { public T call() throws Exception { return factory.create(context); } }; } abstract <T> InternalFactory<? extends T> scopeFactory( Class<T> type, String name, InternalFactory<? extends T> factory); public interface Strategy { <T> T findInRequest(Class<T> type, String name, Callable<? extends T> factory) throws Exception; <T> T findInSession(Class<T> type, String name, Callable<? extends T> factory) throws Exception; <T> T findInWizard(Class<T> type, String name, Callable<? extends T> factory) throws Exception; } } 以上java类中定义的DEFAULT、SINGLETON等后面直接加大括号的是什么语法?请大侠解释一下
使用夜间切换,切换回来后为什么是灰色的?不是白色的,是哪里的配置文件有问题吗?
colors: <resources> <color name="colorPrimary">#3F51B5</color> <color name="colorPrimaryDark">#303F9F</color> <color name="colorAccent">#FF4081</color> <!--定义需要切换的两种颜色,使用只要调用对应的name就可以了--> <color name="textColor">#3b3b3b</color> <color name="textColor_night">#FFFFFF</color> <color name="backgroundColor">#FFFFFF</color> <color name="backgroundColor_night">#3b3b3b</color> </resources> 布局 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/relativelayout" android:background="#55666666" tools:context="text.bawei.com.heibai.MainActivity"> <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="黑白切换" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </RelativeLayout> package text.bawei.com.heibai; import android.content.Context; import android.content.res.Resources; import java.util.HashMap; import java.util.LinkedList; import java.util.List; /** * 类描述: * 姓名 :刘希鑫 */ public class Heibaiqiehuan { private static ThemeMode mThemeMode = ThemeMode.DAY; private static List<OnThemeChangeListener> mThemeChangeListenerList = new LinkedList<>(); private static HashMap<String, HashMap<String, Integer>> sCachedNightResrouces = new HashMap<>(); private static final String RESOURCE_SUFFIX = "_night"; public enum ThemeMode{ DAY,NIGHT; } public static void setThemeMode(ThemeMode themeMode) { if (mThemeMode != themeMode) { mThemeMode = themeMode; if (mThemeChangeListenerList.size() > 0) { for (OnThemeChangeListener listener : mThemeChangeListenerList) { listener.onThemeChanged(); } } } } public static int getCurrentThemeRes(Context context, int dayResId) { if (getThemeMode() == ThemeMode.DAY) { return dayResId; } // 资源名 String entryName = context.getResources().getResourceEntryName(dayResId); // 资源类型 String typeName = context.getResources().getResourceTypeName(dayResId); HashMap<String, Integer> cachedRes = sCachedNightResrouces.get(typeName); // 先从缓存中去取,如果有直接返回该id if (cachedRes == null) { cachedRes = new HashMap<>(); } Integer resId = cachedRes.get(entryName + RESOURCE_SUFFIX); if (resId != null && resId != 0) { return resId; } else { //如果缓存中没有再根据资源id去动态获取 try { // 通过资源名,资源类型,包名得到资源int值 int nightResId = context.getResources().getIdentifier(entryName + RESOURCE_SUFFIX, typeName, context.getPackageName()); // 放入缓存中 cachedRes.put(entryName + RESOURCE_SUFFIX, nightResId); sCachedNightResrouces.put(typeName, cachedRes); return nightResId; } catch (Resources.NotFoundException e) { e.printStackTrace(); } } return 0; } /** * 注册ThemeChangeListener */ public static void registerThemeChangeListener(OnThemeChangeListener listener) { if (!mThemeChangeListenerList.contains(listener)) { mThemeChangeListenerList.add(listener); } } /** * 反注册ThemeChangeListener */ public static void unregisterThemeChangeListener(OnThemeChangeListener listener) { if (mThemeChangeListenerList.contains(listener)) { mThemeChangeListenerList.remove(listener); } } /** * 得到主题模式 */ public static ThemeMode getThemeMode() { return mThemeMode; } /** * 主题模式切换监听器 */ public interface OnThemeChangeListener { /** * 主题切换时回调 */ void onThemeChanged(); } } main类 package text.bawei.com.heibai; import android.graphics.Color; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import android.widget.RelativeLayout; //实现的接口是自己刚刚写的那个类 public class MainActivity extends AppCompatActivity implements Heibaiqiehuan.OnThemeChangeListener{ Button button; private boolean isDay=true;//默认是日间模式 RelativeLayout relativeLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //还是用自己定义的那个类来调用方法 Heibaiqiehuan.registerThemeChangeListener(this); button = (Button) findViewById(R.id.button); relativeLayout = (RelativeLayout) findViewById(R.id.relativelayout); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //再点击事件里面切换黑白 if(isDay==true){ Heibaiqiehuan.setThemeMode(Heibaiqiehuan.ThemeMode.NIGHT ); button.setText("日间模式"); relativeLayout.setBackgroundColor(Color.BLACK); isDay=false; }else { Heibaiqiehuan.setThemeMode(Heibaiqiehuan.ThemeMode.DAY ); relativeLayout.setBackgroundColor(Color.GRAY); button.setText("夜间模式"); isDay=true; } } }); } @Override public void onThemeChanged() { //日间模式下的颜色 button.setTextColor(getResources().getColor(Heibaiqiehuan.getCurrentThemeRes(MainActivity.this, R.color.textColor))); relativeLayout.setBackgroundColor(getResources().getColor(Heibaiqiehuan.getCurrentThemeRes(MainActivity.this, R.color.backgroundColor))); } @Override protected void onDestroy() { super.onDestroy(); Heibaiqiehuan.unregisterThemeChangeListener(this); } }
《奇巧淫技》系列-python!!每天早上八点自动发送天气预报邮件到QQ邮箱
此博客仅为我业余记录文章所用,发布到此,仅供网友阅读参考,如有侵权,请通知我,我会删掉。 补充 有不少读者留言说本文章没有用,因为天气预报直接打开手机就可以收到了,为何要多此一举发送到邮箱呢!!!那我在这里只能说:因为你没用,所以你没用!!! 这里主要介绍的是思路,不是天气预报!不是天气预报!!不是天气预报!!!天气预报只是用于举例。请各位不要再刚了!!! 下面是我会用到的两个场景: 每日下
spring源码阅读环境(几分钟下载包)
南南南南啊!简述:1.下载spring源码:2.安装gradle:3.构建源码:导入idea: 简述: 不能忍受慢(看到这里你就准备笑吧!!) 其他大神的博客实在让我难受 自己动手,下载spring,编译spring源码,导入idea,开启学习模式!! 笔者环境:java1.8.0_181,gradle 5.6.3,idea2019.2.4 1.下载spring源码: github地址:htt...
致 Python 初学者
欢迎来到“Python进阶”专栏!来到这里的每一位同学,应该大致上学习了很多 Python 的基础知识,正在努力成长的过程中。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 python 这门编程语言,从2009年开始单一使用 python 应对所有的开发工作,直至今天。回顾自己的学习过程,也曾经遇到过无数的困难,也曾经迷茫过、困惑过。开办这个专栏,正是为了帮助像我当年一样困惑的 Python 初学者走出困境、快速成长。希望我的经验能真正帮到你
加快推动区块链技术和产业创新发展,2019可信区块链峰会在京召开
      11月8日,由中国信息通信研究院、中国通信标准化协会、中国互联网协会、可信区块链推进计划联合主办,科技行者协办的2019可信区块链峰会将在北京悠唐皇冠假日酒店开幕。   区块链技术被认为是继蒸汽机、电力、互联网之后,下一代颠覆性的核心技术。如果说蒸汽机释放了人类的生产力,电力解决了人类基本的生活需求,互联网彻底改变了信息传递的方式,区块链作为构造信任的技术有重要的价值。   1
Python3.7黑帽编程——病毒篇(基础篇)
引子 Hacker(黑客),往往被人们理解为只会用非法手段来破坏网络安全的计算机高手。但是,黑客其实不是这样的,真正的“网络破坏者”是和黑客名称和读音相似的骇客。 骇客,是用黑客手段进行非法操作并为己取得利益的人。黑客,是用黑客手段为国家或单位做事的人。 那么,既然黑客不是一个很坏的职业,我们就可以去试着学习。 黑客本身的初衷 ——黑客其实一直是善良的。 骇客其实他的前身就是黑客。 骇客与黑客分家
网易云6亿用户音乐推荐算法
网易云音乐是音乐爱好者的集聚地,云音乐推荐系统致力于通过 AI 算法的落地,实现用户千人千面的个性化推荐,为用户带来不一样的听歌体验。 本次分享重点介绍 AI 算法在音乐推荐中的应用实践,以及在算法落地过程中遇到的挑战和解决方案。 将从如下两个部分展开: AI 算法在音乐推荐中的应用 音乐场景下的 AI 思考 从 2013 年 4 月正式上线至今,网易云音乐平台持续提供着:乐屏社区、UGC
8年经验面试官详解 Java 面试秘诀
    作者 | 胡书敏 责编 | 刘静 出品 | CSDN(ID:CSDNnews) 本人目前在一家知名外企担任架构师,而且最近八年来,在多家外企和互联网公司担任Java技术面试官,前后累计面试了有两三百位候选人。在本文里,就将结合本人的面试经验,针对Java初学者、Java初级开发和Java开发,给出若干准备简历和准备面试的建议。   Java程序员准备和投递简历的实
知乎高赞:中国有什么拿得出手的开源软件产品?(整理自本人原创回答)
知乎高赞:中国有什么拿得出手的开源软件产品? 在知乎上,有个问题问“中国有什么拿得出手的开源软件产品(在 GitHub 等社区受欢迎度较好的)?” 事实上,还不少呢~ 本人于2019.7.6进行了较为全面的 回答 - Bravo Yeung,获得该问题下回答中得最高赞(236赞和1枚专业勋章),对这些受欢迎的 Github 开源项目分类整理如下: 分布式计算、云平台相关工具类 1.SkyWalk
致 Python 初学者们!
作者 | 许向武 责编 | 屠敏 出品 | CSDN 博客 前言 在 Python 进阶的过程中,相信很多同学应该大致上学习了很多 Python 的基础知识,也正在努力成长。在此期间,一定遇到了很多的困惑,对未来的学习方向感到迷茫。我非常理解你们所面临的处境。我从2007年开始接触 Python 这门编程语言,从2009年开始单一使用 Python 应对所有的开发工作,直至今
腾讯架构师,为了家庭去小厂,一个月后主动离职:不做中台就是等死
今天咱们第一课,来讲讲大家一直很关注的数据中台。其实,数据中台也是企业数据管理的一部分,甚至可以说是很重要的一部分。 一、什么是中台? 这其实是一个老生常谈的概念了,中台,顾名思义,就是在起中间作用的东西,前有前台,后有后台。 对于中台每个人可能有不同的理解,行业里也没有严格的定义,但我更认同其中一个说法就是:中台是企业级能力复用的平台。   那这句话怎么理解呢? 既然核心是能力复
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友
究竟你适不适合买Mac?
我清晰的记得,刚买的macbook pro回到家,开机后第一件事情,就是上了淘宝网,花了500元钱,找了一个上门维修电脑的师傅,上门给我装了一个windows系统。。。。。。 表砍我。。。 当时买mac的初衷,只是想要个固态硬盘的笔记本,用来运行一些复杂的扑克软件。而看了当时所有的SSD笔记本后,最终决定,还是买个好(xiong)看(da)的。 已经有好几个朋友问我mba怎么样了,所以今天尽量客观...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
(经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
今年正式步入了大四,离毕业也只剩半年多的时间,回想一下大学四年,感觉自己走了不少弯路,今天就来分享一下自己大学的学习经历,也希望其他人能不要走我走错的路。 (一)初进校园 刚进入大学的时候自己完全就相信了高中老师的话:“进入大学你们就轻松了”。因此在大一的时候自己学习的激情早就被抛地一干二净,每天不是在寝室里玩游戏就是出门游玩,不过好在自己大学时买的第一台笔记本性能并不是很好,也没让我彻底沉...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
【金三银四-JVM系列】CMS收集器与GC日志分析定位问题详解
开头: 今天2B哥要和大家分享一篇硬货,为什么呀?因为有两个好事情: 一、哥升级了LV2了 哈哈心情倍爽。 二、拿到了公司给的2千股 在公司呆了2年了,终于成为了东哥的好兄弟。 CMS收集器实战: 实战开始,准备好了没 构建Spring Boot项目: 模拟业务场景代码: @RestController public class IndexController { /*** * 存bi...
拿下微软、Google、Adobe,印度为何盛产科技圈 CEO?
作者 | 胡巍巍 出品 | CSDN(ID:CSDNnews) 世界500强中,30%的掌舵人,都是印度人。 是的,你没看错。这是近日《哈佛商业评论》的研究结果。 其中又以微软CEO萨提亚·纳德拉(Satya Nadella)、和谷歌CEO桑达尔·皮查伊(Sundar Pichai,以下简称劈柴)最为出名。 微软CEO萨提亚·纳德拉(Satya Nadella) 其他著名印度...
[数据结构与算法] 邂逅栈
栈 在邂逅了完线性结构的数组和队列后, 我们便偶遇了栈这个东东, 他到底是个啥? 就让我们慢慢揭开它的神秘面纱吧~~~ 需求介绍 栈的介绍 栈的英文为(stack) 栈是一个先入后出(FILO-First In Last Out)的有序列表。 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的一端,为变化的一端,称为栈顶(Top),另一...
Java工作4年来应聘要16K最后没要,细节如下。。。
前奏: 今天2B哥和大家分享一位前几天面试的一位应聘者,工作4年26岁,统招本科。 以下就是他的简历和面试情况。 基本情况: 专业技能: 1、&nbsp;熟悉Sping了解SpringMVC、SpringBoot、Mybatis等框架、了解SpringCloud微服务 2、&nbsp;熟悉常用项目管理工具:SVN、GIT、MAVEN、Jenkins 3、&nbsp;熟悉Nginx、tomca...
普通三本毕业,我怎么一路艰辛进入阿里的
英雄不问出处? 自古以来就有这样一句话,真的英雄不问出处吗?这句话太挫了。普通三本院校的我,大四的时候居然都不知道什么是校招,所以出处太重要了。这也是没有机会参加阿里校招的原因,毕竟校招门槛比社招还是要低的,最重要的是校招进入阿里能让你的起点比别人更高。 有幸可以社招进入阿里,了解了校招的思路,赶紧介绍给学弟们,现在我们三本院校的小学弟今年居然有 3 个人通过了阿里的校招。下面我也把这份宝贵的经...
作为一个程序员,CPU的这些硬核知识你必须会!
CPU对每个程序员来说,是个既熟悉又陌生的东西? 如果你只知道CPU是中央处理器的话,那可能对你并没有什么用,那么作为程序员的我们,必须要搞懂的就是CPU这家伙是如何运行的,尤其要搞懂它里面的寄存器是怎么一回事,因为这将让你从底层明白程序的运行机制。 随我一起,来好好认识下CPU这货吧 把CPU掰开来看 对于CPU来说,我们首先就要搞明白它是怎么回事,也就是它的内部构造,当然,CPU那么牛的一个东...
@程序员,如何花式构建线程?
作者 |曾建责编 | 郭芮出品 | CSDN(ID:CSDNnews)在项目和业务的开发中,我们难免要经常使用线程来进行业务处理,使用线程可以保证我们的业务在相互处理之间可以保证原子性...
破14亿,Python分析我国存在哪些人口危机!
一、背景 二、爬取数据 三、数据分析 1、总人口 2、男女人口比例 3、人口城镇化 4、人口增长率 5、人口老化(抚养比) 6、各省人口 7、世界人口 四、遇到的问题 遇到的问题 1、数据分页,需要获取从1949-2018年数据,观察到有近20年参数:LAST20,由此推测获取近70年的参数可设置为:LAST70 2、2019年数据没有放上去,可以手动添加上去 3、将数据进行 行列转换 4、列名...
22种编程语言新年快乐
请允许我用22种编程语言,祝大家新年快乐 C语言:printf(“祝大家新年快乐”); C++ : cout&lt;&lt;“祝大家新年快乐”; OC: NSLog(@“祝大家新年快乐”) QBasic : Print “祝大家新年快乐” Asp : Response.Write “祝大家新年快乐” PHP : echo “祝大家新年快乐”; JScript: alert(“祝大家新年快乐”) V...
强烈推荐10本程序员在家读的书
很遗憾,这个春节注定是刻骨铭心的,新型冠状病毒让每个人的神经都是紧绷的。那些处在武汉的白衣天使们,尤其值得我们的尊敬。而我们这些窝在家里的程序员,能不外出就不外出,就是对社会做出的最大的贡献。 有些读者私下问我,窝了几天,有点颓丧,能否推荐几本书在家里看看。我花了一天的时间,挑选了 10 本我最喜欢的书,你可以挑选感兴趣的来读一读。读书不仅可以平复恐惧的压力,还可以对未来充满希望,毕竟苦难终将会...
新型冠状病毒全国疫情接口Api
返回json示例 { "errcode":0,//0标识接口正常 "data":{ "date":"2020-01-30 07:47:23",//实时更新时间 "diagnosed":7736,//确诊人数 "suspect":12167,//疑是病例人数 "death":170,//死亡人数 "cur...
Python入门_给小白的学习指南
python是当下很热门的语言,我在入门python时花的时间特别长,一方面是自学,另一方面是这个东西对新人很不友好。因此,我写下这篇文章,希望能对想从零开始学python的同学有一些帮助。 首先给大家分享一些学Python的网站: https://m.runoob.com/python3/python3-tutorial.html 简单讲讲,Python有两个版本,Python2和Python...
听说想当黑客的都玩过这个Monyer游戏(1~14攻略)
第零关 进入传送门开始第0关(游戏链接) 请点击链接进入第1关: 连接在左边→ ←连接在右边 看不到啊。。。。(只能看到一堆大佬做完的留名,也能看到菜鸡的我,在后面~~) 直接fn+f12吧 &lt;span&gt;连接在左边→&lt;/span&gt; &lt;a href="first.php"&gt;&lt;/a&gt; &lt;span&gt;←连接在右边&lt;/span&gt; o...
智力题(程序员面试经典)
NO.1  有20瓶药丸,其中19瓶装有1克/粒的药丸,余下一瓶装有1.1克/粒的药丸。给你一台称重精准的天平,怎么找出比较重的那瓶药丸?天平只能用一次。 解法 有时候,严格的限制条件有可能反倒是解题的线索。在这个问题中,限制条件是天平只能用一次。 因为天平只能用一次,我们也得以知道一个有趣的事实:一次必须同时称很多药丸,其实更准确地说,是必须从19瓶拿出药丸进行称重。否则,如果跳过两瓶或更多瓶药...
自学python网络爬虫,从小白快速成长,分别实现静态网页爬取,下载meiztu中图片;动态网页爬取,下载burberry官网所有当季新品图片。
文章目录 1.前言 2.知识储备 3.爬取静态网站 4.爬取动态网站 1.前言 近日疫情严重,手机已经玩吐了,闲着无聊逛衣服品牌官网发现,结果一时兴起,想学一学python,写一个爬虫下载官网所有最新上架的衣服图片和价格;说干就干,但身为一个只学过一些c和c++的python 0基础大二小白,csdn上的各种教程里涉及的各种发法、工具和库让我眼花缭乱;因此走了很多弯路,终于花三天时间完成了爬虫的设...
面试官问你MyBatis SQL是如何执行的?把这篇文章甩给他
初识 MyBatis MyBatis 是第一个支持自定义 SQL、存储过程和高级映射的类持久框架。MyBatis 消除了大部分 JDBC 的样板代码、手动设置参数以及检索结果。MyBatis 能够支持简单的 XML 和注解配置规则。使 Map 接口和 POJO 类映射到数据库字段和记录。 MyBatis 的特点 那么 MyBatis 具有什么特点呢?或许我们可以从如下几个方面来描述 MyBati...
新冠肺炎数据可视化
目前,腾讯的 疫情实时追踪 网页能够看到实时的新冠病毒数据,可视化展示也非常清晰。但每次打开都只能看到当天的数据,所以就想把每天的数据都保存下来。保存下来后,也用 pyecharts 做了一个疫情地图。记录下要点,供参考。 使用 Chrome 浏览器,打开 疫情实时追踪 网页,然后点击 F12,打开 Developer Tools,再次点击页面刷新按钮,追踪得到数据的 Script 如下: Re...
在家远程办公效率低?那你一定要收好这个「在家办公」神器!
相信大家都已经收到国务院延长春节假期的消息,接下来,在家远程办公可能将会持续一段时间。 但是问题来了。远程办公不是人在电脑前就当坐班了,相反,对于沟通效率,文件协作,以及信息安全都有着极高的要求。有着非常多的挑战,比如: 1在异地互相不见面的会议上,如何提高沟通效率? 2文件之间的来往反馈如何做到及时性?如何保证信息安全? 3如何规划安排每天工作,以及如何进行成果验收? ...... ...
作为一个程序员,内存和磁盘的这些事情,你不得不知道啊!!!
截止目前,我已经分享了如下几篇文章: 一个程序在计算机中是如何运行的?超级干货!!! 作为一个程序员,CPU的这些硬核知识你必须会! 作为一个程序员,内存的这些硬核知识你必须懂! 这些知识可以说是我们之前都不太重视的基础知识,可能大家在上大学的时候都学习过了,但是嘞,当时由于老师讲解的没那么有趣,又加上这些知识本身就比较枯燥,所以嘞,大家当初几乎等于没学。 再说啦,学习这些,也看不出来有什么用啊!...
相关热词 c# 为空 判断 委托 c#记事本颜色 c# 系统默认声音 js中调用c#方法参数 c#引入dll文件报错 c#根据名称实例化 c#从邮件服务器获取邮件 c# 保存文件夹 c#代码打包引用 c# 压缩效率
立即提问