小编tom*_*ies的帖子

为什么在compareTo中可以访问类的私有成员?

我写了下面的类来讨论Comparable/Serializable接口.

package testpro;

public class SerialTest implements Comparable {
    private int circleSize = 10;

    private int getCircleSize() {
    return circleSize;
    }

    @Override
    public int compareTo(Object o) {
    SerialTest object = (SerialTest) o;
    if(getCircleSize()>object.getCircleSize()){ // I can access object.getCircleSize() here, but it's private.. why?
        return 1;
    }
    else if(getCircleSize()<object.getCircleSize()){// I can access object.getCircleSize() here, but it's private.. why?
        return -1;
    }
    else{
        return 0;
    }
    }
}
Run Code Online (Sandbox Code Playgroud)

我将Object o传递给compareTo()方法,但getCircleSize()是私有的.那怎么可能,我有权访问这个?我很确定C++不会放过它.

java private

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

使用Scheduler时,System.out.println在RxJava中不打印任何内容

我正在摆弄RxJava和Schedulers.我使用调度程序实现了一个非常简单的流:

Observable.just(1, 2, 3)
      .doOnNext(v -> Thread.currentThread().getName())
      .subscribeOn(Schedulers.newThread())
      .subscribe(v -> System.out.println(v));
Run Code Online (Sandbox Code Playgroud)

上面的示例在控制台中不打印任何内容.

我注意到,当我使用Thread.sleep()阻塞主线程时,System.out.println会输出正确的值 - 1 2 3:

Observable.just(1, 2, 3)
        .doOnNext(v -> Thread.currentThread().getName())
        .subscribeOn(Schedulers.newThread())
        .subscribe(v -> System.out.println(v));

        try {
            Thread.sleep(10);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
Run Code Online (Sandbox Code Playgroud)

有人能帮我理解这种行为吗?

java multithreading scheduler rx-java

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

释放内存 - 二维数组

我使用Visual C++ 2010,我正在尝试使用带有二维数组的free():

#include <stdio.h>
#include <stdlib.h>
#define SIZE 8


int main(){

    int **matrix = (int**)malloc(sizeof(int*)*SIZE);
    int i;
    for(i=0; i<SIZE; i++){
        matrix[i] = (int*)malloc(sizeof(int)*SIZE);
    }
    for(i=0; i<SIZE; i++){
        free(matrix[i]);
    }
    free(matrix);
    getch();
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我这样做了吗?

问候.

c visual-studio-2010

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

这段代码出了什么问题?无法将带有[]的索引应用于类型的表达式

我正在写一个小型控制台应用程序.我不知道出了什么问题......

namespace Mtrx
{
    class Mtrx
    {
        private double[,] _sqMtrx;
        private double _mtrxSize { get; set; }

        public Mtrx(int i)
        {

            if (i <= 0)
                throw new FormatException();
            else
                this._sqMtrx = new double[i, i];
            _mtrxSize = i;
        }

        public static Mtrx operator +(Mtrx m1, Mtrx m2)
        {
            if (m1._mtrxSize == m2._mtrxSize)
            {
                for (int i = 1; i <= m1._mtrxSize; i++)
                {
                    for (int j = 1; j <= m1._mtrxSize; j++)
                    {
                        return m1[i, j] == m1[i, j] + m2[i, …
Run Code Online (Sandbox Code Playgroud)

c#

0
推荐指数
1
解决办法
879
查看次数

指向链表元素的指针数组

我有一个链表(Tproduct),我想创建一个指向这个的指针数组,例如:

e1 -> e2 -> e3 -> e4 -> e5 -> e6
|           |                 |
v           v                 v
p[0]       p[1]              p[2]
Run Code Online (Sandbox Code Playgroud)

我的声明如下:

Tproduct *arrayOfPointers = (Tproduct*)malloc(N*sizeof(Tproduct*));
Run Code Online (Sandbox Code Playgroud)

这是对的吗?我不确定它是Tproduct*arrayOfPointers还是Tproduct arrayOfPointers.

问候.

c visual-studio-2010

0
推荐指数
1
解决办法
69
查看次数

我使用向量得到内存泄漏

我写了一些简单的接口,我想创建一个全局向量,包含实现接口的类的对象.所以我做了以下事情:

vector<SomeInterface*> ary;
Run Code Online (Sandbox Code Playgroud)

我注释掉整个代码从开:无效main()和矢量元; 现在使用_CrtDumpMemoryLeaks(); 在Visual Studio 2010中,我得到1个块泄露.

怎么解决?

问候.

c++ memory-leaks vector visual-studio-2010

0
推荐指数
1
解决办法
130
查看次数