小编azu*_*rog的帖子

类成员 - Java与Python

我现在来自Java和学习Python.我尝试理解Python中类成员的概念.

这是Java中的示例程序:

class Hello {
    int x = 0;

    void ex() {
        x = 7;
    }

    public static void main(String args[]) {
        Hello h = new Hello();
        System.out.println(h.x);
        h.ex();
        System.out.println(h.x);
}   }
Run Code Online (Sandbox Code Playgroud)

这是我在Python中所做的,遵循我发现的一些例子:

class Hello:
   def __init__(self) :
       self.x = 0

   def ex(self):
       self.x = 7

h = Hello()
print(h.x)
h.ex()
print(h.x)
Run Code Online (Sandbox Code Playgroud)

两个程序都返回:

0
7
Run Code Online (Sandbox Code Playgroud)

这是我的问题:

  1. Python代码是否正确?
  2. 与Java相比,Python的编程风格在我看来更紧凑.所以我想知道,为什么 Python需要传递一个"自我" - 参数.
  3. 在这一点上,Python似乎比Java更"复杂".或者有没有办法删除"自我" - 参数?

python java

9
推荐指数
1
解决办法
1165
查看次数

在brew cask install java之后java的路径仍然是/ usr/bin/java

我用自制软件安装java,使用命令brew cask install java.

成功安装后,我键入了哪个java,路径显示为/ usr/bin/java

当我输入brew cask info java时,会显示:

java:1.8.0_102-b14 Java标准版开发工具包

/usr/local/Caskroom/java/1.8.0_102-b14(227.5M) https://github.com/caskroom/homebrew-cask/blob/master/Casks/java.rb 内容JDK 8更新102.pkg(PKG注意事项此Cask对JRE进行了少量修改,以防止打包应用程序出现问题,如下所述:如果您的Java应用程序仍然要求安装JRE,则可能需要重新启动或注销/登录.

安装此Cask意味着您已同意Java SE的Oracle二进制代码许可协议

我忘记链接了什么吗?

java installation homebrew path

7
推荐指数
2
解决办法
5031
查看次数

尝试使用 API v4 在 Google 表格中写入行时出错

我正在尝试使用 java 和 Google Sheets API v4 将一行写入工作表。我收到一个我无法理解的错误。任何帮助将不胜感激!

传递的值是:

sRange = '09/03/2017 11:01:13 PM'!A1
body = {majorDimension=ROWS,values=[[测试 ID、测试名​​称、运行 ID、状态、运行持续时间、执行日期、执行时间]]}

这是故障代码:

outputValues = Arrays.asList(Arrays.asList("Test ID", "Test Name", "Run ID", "Status", "Run Duration", "Execution Date", "Execution Time"));
sRange = "'" + sSheetName + "'" + "!" + sHeaderRow;
body = new ValueRange().setValues(outputValues).setMajorDimension("ROWS");
result = service.spreadsheets().values().update(sSpreadsheetID, sRange, body).setValueInputOption("RAW").execute();
Run Code Online (Sandbox Code Playgroud)

结果:

{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Requested writing within range ['09/03/2017 11:01:13 PM'!A1], but tried writing to …
Run Code Online (Sandbox Code Playgroud)

java google-sheets-api

7
推荐指数
2
解决办法
1万
查看次数

如何使用assertTrue?

我有:

package com.darlik.test;

import org.junit.Assert;

public class Test {

    public static void main(String[] args) {
        assertTrue(1, 2);
    }

}
Run Code Online (Sandbox Code Playgroud)

包含org.junit的包已设置并正常工作但与assertTrue一致我有错误:

对于类型Test,方法assertTrue(int,int)是未定义的

为什么?我用Eclipse.

java eclipse junit

6
推荐指数
3
解决办法
6万
查看次数

如何在数组Java的一部分上调用Collections.Shuffle

所以我有以下数组:

String [] randomList = new String [16];
    randomList[0]="Dog";
    randomList[1]="Dog";
    randomList[2]="Cat";
    randomList[3]="Cat";
    randomList[4]="Mouse";
    randomList[5]="Mouse";
    randomList[6]="Car";
    randomList[7]="Car";
    randomList[8]="Phone";
    randomList[9]="Phone";
    randomList[10]="Game";
    randomList[11]="Game";
    randomList[12]="Computer";
    randomList[13]="Computer";
    randomList[14]="Toy";
    randomList[15]="Toy";
Run Code Online (Sandbox Code Playgroud)

我想只改变这个数组的前9个元素.我使用了以下代码,但它将整个数组洗牌.

Collections.shuffle(Arrays.asList(randomList));
Run Code Online (Sandbox Code Playgroud)

我怎么会只改变阵列的一部分而不是整个东西呢?我正在制作一个非常简单的程序,所以我想继续使用Collections类,但欢迎所有解决方案.谢谢

java arrays

6
推荐指数
1
解决办法
370
查看次数

仅获取更新查询的结果

当我在我的SQL Server数据库执行更新,我得到受更新的行的结果一些触发器的影响行.

例如,直接在数据库上执行更新:

UPDATE: (32 row(s) affected)
Trigger1: (1 row(s) affected)
Trigger2: (2 row(s) affected)
...
Run Code Online (Sandbox Code Playgroud)

现在,当我执行时,_context.Database.ExecuteSqlCommand(query, params)我总是得到所有结果的总和,在我的例子中,结果值是35.

UPDATE在我的例子中,我只需要结果32.

是否有可能忽略触发器的结果?

c# sql-server

5
推荐指数
1
解决办法
298
查看次数

在Enum中不是常数

我使用切换案例枚举,但我收到以下错误:

NEWS FEED在FragmentName中不是常量

这是我的枚举字符串常量,

 public enum FragmentName{
        FRAGMENT_NEWSFEED("NEWS FEED"),
        FRAGMENT_MESSAGES("MESSAGES"),
        FRAGMENT_EVENTS("EVENTS"),
        FRAGMENT_WHOISAROUDNME("WHOS AROUND");

        private final String text;
        private FragmentName(final String text) {
            this.text = text;
        }
        @Override
        public String toString() {
            return text;
        }
    }

//This is my function from where i check for corresponding enum constant

 public void changeTitle(String title) {
        switch (Enums_String.FragmentName.valueOf(title)) {
            case FRAGMENT_NEWSFEED:
                System.out.println("1");
                break;
            case FRAGMENT_EVENTS:
                System.out.println("2");
                break;
            case FRAGMENT_MESSAGES:
                System.out.println("3");
                break;
            case FRAGMENT_WHOISAROUDNME:
                System.out.println("4");
                break;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我打电话的时候

     changeTitle("NEWS FEED");
Run Code Online (Sandbox Code Playgroud)

它会在changeTitle函数中创建一个异常,即使传递的值是相同的,所以任何帮助都会受到赞赏,因为我已尽力解决这个问题.

java enums enumeration

5
推荐指数
2
解决办法
4815
查看次数

新关键字在这里做什么?

class my_class {

    int a = 8;

    my_class() {
        System.out.println(a);
    }
}

public class NewClass {

    public static void main(String[] argue) {

        new my_class();

        new my_class();  

    }
}
Run Code Online (Sandbox Code Playgroud)

我无法理解main方法(new my_class();)中的两个语句.

除了在对象定义中,我从未见过这个语句.我知道new关键字为一个对象分配内存并分配一个引用地址,但在这种情况下发生的事情是完全模糊的; 为什么分配内存?

新关键字在这里做什么?无论这是通过使用此语句,我可以从main方法显式调用构造函数.我无法在教科书或互联网上找到这样的陈述.

java

5
推荐指数
1
解决办法
247
查看次数

TypeError“set”对象不支持项目分配

我需要知道为什么它不允许我将作业的值增加 1:

keywords = {'states' : 0, 'observations' : 1, 'transition_probability' : 2, 'emission_probability' : 3}
keylines = {-1,-1,-1,-1}

lines = file.readlines()
for i in range(0,len(lines)):
    line = lines[i].rstrip()
    if line in keywords.keys():
        keylines[keywords[line]] = i + 1 << this is where it is giving me the error
Run Code Online (Sandbox Code Playgroud)

我将它作为一个类运行,它工作得很好,但现在作为一个内联代码片段,它给了我这个错误。

python dictionary set typeerror python-3.x

5
推荐指数
2
解决办法
4万
查看次数

错误:(32,27)错误:不兼容的类型:对象无法转换为long

我是Java的新手.

错误:(40,5)错误:方法没有覆盖或实现超类型的方法
错误:(32,27 )错误:不兼容的类型:对象无法转换为长

    @Override
    public long getItemId(int position) {
        String item = getItem(position);
        return hashMap.get(item);
    }
Run Code Online (Sandbox Code Playgroud)

完整代码如下

package com.javapapers.android.listview;

import android.content.Context;
import android.widget.ArrayAdapter;
import java.util.HashMap;
import java.util.List;

public class SimpleArrayAdapter extends ArrayAdapter {

    Context context;
    int textViewResourceId;
    private static final String TAG = "SimpleArrayAdapter" ;
    HashMap hashMap = new HashMap();

    public SimpleArrayAdapter(Context context, int textViewResourceId,
                              List objects) {
        super(context, textViewResourceId, objects);
        this.context = context;
        this.textViewResourceId = textViewResourceId;
        for (int i = 0; i < objects.size(); ++i) {
            hashMap.put(objects.get(i), …
Run Code Online (Sandbox Code Playgroud)

java android

4
推荐指数
1
解决办法
2万
查看次数