小编Pur*_*ret的帖子

为什么我会使用Enum,而不只是一个类?

前几天我正在用Java帮助一个朋友,他们问的是Enums.我解释了C语法(类似的东西)

enumeration Difficulty{
    BEGINNER= 1;
    PRO=5;
    EXPERT = 11;
}
Run Code Online (Sandbox Code Playgroud)

不是要走的路,Java语法是something(1);你做了一个接受一个int的构造函数然后做了这个和那个......等等.

但是他们阻止了我并且问道:"如果我们使用构造函数等等,为什么还要使用枚举,为什么不只是有一个新的类?"

我无法回答.那么为什么你会在这种情况下使用枚举,而不是一个类?

java enums

5
推荐指数
3
解决办法
572
查看次数

如何打开我的equals语句以接受Java中的多个参数?

我有一个梦想....

在这个梦想中,我可以取代以下构造:

if(aLongVariableName.equals(classInstance.aPropertyOfThatInstance) ||  
   aLongVariableName.equals(classInstance.aDifferentProperty)){  
    ...  
}
Run Code Online (Sandbox Code Playgroud)

if(aLongVariableName.equals(classInstance.aDifferentProperty || aPropertyOfThatInstance)){ 
   ...  
}
Run Code Online (Sandbox Code Playgroud)

我认为后者更简洁,更容易阅读.我确信应该可以实现某些方法,因为可以用这种签名来声明方法,这种签名public void readUnlimitedVariables(Variable ... vars)采用逗号分隔的变量(而不是||甚至是&&).

这可以打开任何返回布尔值的东西,例如:

if(myLovelyInstance instanceof AwesomeClass && EpicClass){
    ...
}
Run Code Online (Sandbox Code Playgroud)

其中myLovelyInstance器具AwesomeClass && EpicClass

这在Java中可行吗?到目前为止,我还没有通过谷歌搜索或SO搜索到任何内容.如果它不是在Java中,那么是否有任何第三方软件包如Lombok或lambdaJ可以允许这样做?如果不是这样,如果这是任何语言的功能?这对我来说似乎很直观,但我没有在任何地方看到它.

java variables

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

如何将字符串分成组?

我正在尝试弄清楚如何将字符串分成组。我认为该split(regex)方法本身还不够。

我已经String complexStatement = "(this && that)||(these&&those)||(me&&you)";并且想要一个具有这种形式的数组:

"(this && that)","(these&&those)","(me&&you)""
Run Code Online (Sandbox Code Playgroud)

如果有的"(5+3)*(2+5)+(9)"话我想要“(5+3)”、“(2+5)”、“(9)”。(如果您能以某种方式保留连接
信息,则可获得奖励积分,例如) *,+,||

这对于任意字符串输入可能吗?我正在使用 StringTokenizer,但我还没有完全掌握它。

java string tokenize

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

如何使用直通表并指向 self 使用 ManyToManyField 设置 related_name

我有一个任务类,可以有子任务,所以这是一个循环关系。我通过链接器模型/表传递它,如下所示:

class Task(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField(blank=True)
    completed = models.BooleanField(default=False)
    project = models.ForeignKey('Project', related_name="tasks")
    dependancy = models.ManyToManyField('self', through='Dependancy', null=True, 
        blank=True, through_fields=('task', 'sub_task'), symmetrical=False)
    def __str__(self):
        return self.title

class Dependancy(models.Model):
    task = models.ForeignKey(Task)
    sub_task = models.ForeignKey(Task)
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

ERRORS:
gantt_charts.dependency.sub_task: (fields.E303) Reverse query name for 'dependency.sub_task' clashes with field name 'Task.dependency'.
        HINT: Rename field 'Task.dependency', or add/change a related_name argument to the definition for field 'dependency.sub_task'.
gantt_charts.dependency.sub_task: (fields.E304) Reverse accessor for 'dependency.sub_task' clashes with reverse accessor for 'dependency.task'.
        HINT: Add …
Run Code Online (Sandbox Code Playgroud)

django django-models

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

使用AngularJS创建cookie

我尝试使用以下代码设置Cookie:

angular.module('myApp').controller('myController', ['$scope', '$http','$cookies', function ($scope, $http, $cookies) {

    $scope.setMyCookie = function () {
        $cookies.put('Mykey', 'MyValue');    
    };
    $scope.setMyCookie();
}]);
Run Code Online (Sandbox Code Playgroud)

我更新到角度cookie的版本1.3.14,我知道有一个重大变化,但我现在应该怎么写上面的代码?

运行上面的代码我收到此错误: Error: $cookies.put is not a function


更新:我必须在2个文件中执行此操作:

var app = angular.module('myApp', ['ngRoute']);

app.config(['$routeProvider', '$httpProvider', function ($routeProvider, $httpProvider) {

}]);

angular.module('myApp', ['ngCookies']).controller('cookiesExample', ['$cookies', function ($cookies) {
    // Retrieving a cookie
    var favoriteCookie = $cookies.myFavorite;
    // Setting a cookie
    $cookies.myFavorite = 'oatmeal';
}]);
Run Code Online (Sandbox Code Playgroud)

cookies setcookie angularjs angular-cookies

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

django 模型元类的标准文档字符串是什么?

django 中的模型可以带有这样的元类:

class Address(models.Model):
    """Address model."""

    class Meta:
        """Meta McMetaface."""

        verbose_name = "Address"
        verbose_name_plural = "Addresses"

    address_line = models.CharField(max_length=256)
    postcode = models.CharField(max_length=10)

    def __str__(self):
        """Return address without post code."""
        return self.address_line
Run Code Online (Sandbox Code Playgroud)

我的元类充其量是异想天开的。Python 或 Django 是否有元类的标准文本?

python django metaclass pep

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

React Hooks 和 Enzyme:React 不断告诉我将状态更新包装在 act(...) 中,即使我认为是这样

我一直在自学如何使用enzyme和测试 React 组件jest,但我对如何测试使用 React hooks 的已安装组件一无所知。

这是该组件的简化版本......

  const [records, setRecords] = useState([]);

  const onChange = async ({ value }) => {
    try {
      const request = await searchRecords();

      console.log("Before setRecords");

      setRecords(request.results);

      console.log("After setRecords");
    } catch (error) {  /* error handling */ }
  }

Run Code Online (Sandbox Code Playgroud)

测试代码看起来像...

let wrapped;

describe("Sample", () => {
  beforeEach(() => {
    jest.clearAllMocks();
    wrapped = mount(
      <Provider store={createStore(reducers, {})}>
        <Sample />
      </Provider>
    );
    api.mockImplementation(() => ({ results: searchResult }));
  });

  afterEach(() => { …
Run Code Online (Sandbox Code Playgroud)

reactjs jestjs react-dom enzyme react-hooks

5
推荐指数
0
解决办法
2185
查看次数

模拟导入的 Lazy React 组件

这是我的懒惰组件:

const LazyBones = React.lazy(() => import('@graveyard/Bones')
  .then(module => ({default: module.BonesComponent}))
export default LazyBones
Run Code Online (Sandbox Code Playgroud)

我是这样导入的:

import Bones from './LazyBones'

export default () => (
<Suspense fallback={<p>Loading bones</p>}>
  <Bones />
</Suspense>
)
Run Code Online (Sandbox Code Playgroud)

在我的测试中,我有这样的事情:

import * as LazyBones from './LazyBones';

describe('<BoneYard />', function() {
  let Bones;
  let wrapper;
  beforeEach(function() {
    Bones = sinon.stub(LazyBones, 'default');
    Bones.returns(() => (<div />));
    wrapper = shallow(<BoneYard />);
  });
  afterEach(function() {
    Bones.restore();
  });

  it('renders bones', function() {
    console.log(wrapper)
    expect(wrapper.exists(Bones)).to.equal(true);
  })

})
Run Code Online (Sandbox Code Playgroud)

我期望的是测试通过,并且 console.log 打印出来:

<Suspense fallback={{...}}>
  <Bones /> …
Run Code Online (Sandbox Code Playgroud)

javascript sinon reactjs javascript-import react-suspense

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

Storybook AddDecorators 不提供 redux 存储

我正在使用 Storybook 和 React-Redux。

\n

我在 中有一个全局装饰器preview.js,它添加了商店,如下所示:

\n
import { addDecorator } from \'@storybook/react\';\nimport ProviderWrapper from \'../src/components/Provider\'; //Provides the store\n\naddDecorator(storyFn => <ProviderWrapper>{storyFn()}</ProviderWrapper>\n
Run Code Online (Sandbox Code Playgroud)\n

ProviderWrapper 只是(或多或少):

\n
import { Provider } from \'react-redux\';\nimport { configureStore } from \'../redux/configureStore\';\n\nconst store = configureStore();\nexport const ProviderWrapper = ({ children }) =>\n    (<Provider store={store}>{children}</Provider>)\n
Run Code Online (Sandbox Code Playgroud)\n

目前配置store很简单:const configureStore = () => createStore(reducers);

\n

我遇到的问题是,当我尝试在我的组件之一中使用react-redux钩子并设置它时,我收到以下错误消息:

\n
could not find react-redux context value; please ensure the component is wrapped in a <Provider>\n
Run Code Online (Sandbox Code Playgroud)\n

我的组件像这样使用商店:

\n …

javascript reactjs redux react-redux storybook

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

在 useEffect 中使用额外的依赖项会产生什么后果?

假设我有这段代码:

useEffect(() => {
  makeBreakfast(pig)
}, [pig, chicken])
Run Code Online (Sandbox Code Playgroud)

makeBreakfast被调用pig,并且它位于依赖项中是有意义的。然而,在这个虚拟示例中,我们还想在pig每次chicken更改时制作早餐(我不知道为什么,这只是一个示例!)。我们本质上是在监听 的变化chicken,即使它不涉及函数makeBreakfast

useEffect(() => {
  if(breakfastMadeRef.current) {
    farmerFed.current = true;
  }
}, [farmerIndex])
Run Code Online (Sandbox Code Playgroud)

在此示例中,没有实际的依赖项,但我们确实希望检查/更改 farmerIndex 更改的引用(同样,这只是一个虚拟示例)。

这种“额外”依赖性有什么后果吗?对我来说这似乎不干净,正如我期望的那样(从文档以及我见过/使用的其他地方useEffect)所有依赖项都将在效果函数的主体中使用。

如果我react-hooks/exhaustive-deps按照预期使用该规则,则不会有任何抱怨。所以我倾向于认为这是可以的,尽管如果我们最终将整个农场添加到依赖项列表中可能会产生误导/混淆?

reactjs use-effect

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