小编man*_*nis的帖子

通用列表打印方法

我正在尝试编写一个通用的print方法,适用于实现"Iterable"接口的所有类

public class List<T> {

    public static <T extends Iterable<T>> void print(T[] list){
        for (Object element : list){
            System.out.println(element);
        }
    }
    public static void main(String[] args){
        ArrayList<Integer> l = new ArrayList();
        l.add(1);
        l.add(5);
        l.add(3);
        l.add(2);
        print(l);
    }
}
Run Code Online (Sandbox Code Playgroud)

但我收到错误"List中的方法print(T [])不适用于参数(ArrayList)"

java generics list

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

缩短方法/变量名称?

使用long是否会被认为是不好的样式,但是描述性的方法名称如"adjacentLocationsByState()"如果是这样的话,最好将它缩短为类似"adjLocByState"的东西,它肯定更短,但在我看来也不太可读

java coding-style

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

无效的单表继承类型..不是它的子类

我试图记录用户通过用户和交易之间的多对多关系进行的每次购买,并通过连接表"transactuins_users"链接它们.但我有两个问题,首先,我需要提供创建!对于被称为id的对象的方法,我认为Rails应该在给定关联的情况下自己解决这个问题.

此外,每当我调用purchase方法时,我都会收到错误"无效的单表继承类型:buy不是Transaction的子类"

class User < ActiveRecord::Base

  # Associations
  has_and_belongs_to_many :transactions

  def purchase(package)
    return false unless funds_available?(package) and !owns?(package)
      package.with_lock do

      # Makes transaction
      package.user_id = id
      package.save!
      withdraw(package.cost)

      # Records transaction
      values = {user_id: id, type: "buy", cost: package.cost}
      transactions.create values
    end
  end


class Transaction < ActiveRecord::Base

  # Associations 
  has_and_belongs_to_many :transactions

  # Validations
  validates :user_id, :cost, presence: true
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-4

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

堆栈级别太深

您好我收到了"Stack level too deep"错误,我很确定它是从这个模型生成的.我知道它与递归调用有关,但到目前为止我无法找到它,谢谢.

class Character < ActiveRecord::Base

  # Associations
  belongs_to :user

  # Validations
  validates :name, :presence => true, :uniqueness => true, :length => 
  { minimum: 2, maximum: 20 }, format: { with: /\A[a-zA-Z]+\Z/ }
  validates :race, :presence => true
  validates :class, :presence => true
  validates :user, :presence => true

  def self.races
    ["Human", "Dwarf", "Elven", "Orc", "Undead", "Demon"]
  end

  def self.classes
    {
      :fighter => {strength: 4, endurance: 3, dexterity: -2, charisma: -2, wisdom: -2, intelligence: -3}, 
      :thief   => {strength: -3,endurance: …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-4

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

购物车,可以使用Devise的会话功能吗?

我正在写一个电子商务网站,我需要实现购物车功能.我希望客户能够在不事先注册的情况下将产品添加到购物车中,所以我想我会通过会话来实现这一目标.

这可以在Devise gem中完成,还是我必须实现自己的会话模型才能工作?

ruby-on-rails e-commerce devise ruby-on-rails-4

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

为什么我收到错误"此方法必须返回类型的结果..."?

任何人都可以看到为什么我会收到错误"这种方法必须返回类型卡的结果",当我清楚地返回卡的类型变量"卡"?

public Card playCard(int id){
    int i = 0;
    for (Card element : hand){
        if (i <= hand.size())
        {           
            if (element.getID() == id)
            {
                Card card = hand.get(i);
                hand.remove(i);
                return card;
            }
            else
            {
                i++;
            }

        }
        else
        {
            throw new NullPointerException("Card does not exist in     hand");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java

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

NoMethodError: {:factory=&gt;:user}:Hash 的未定义方法 `to_sym'

在字符工厂上调用 create 时出现错误

    factory :user do |f|
        f.sequence(:email) { |n| "foo#{n}@example.com" }
        f.password "password"       
  end

    factory :character do |f|
        f.name "testcharone"
        f.race "human"
    after(:create) { |character| character.init("fighter")}
    association factory: :user
  end
Run Code Online (Sandbox Code Playgroud)

错误:

NoMethodError:
       undefined method `to_sym' for {:factory=>:user}:Hash
Run Code Online (Sandbox Code Playgroud)

任何人都可以看到有什么问题吗?

完成此测试需要 16 分钟,而其他类似的测试需要 5-10 分钟

describe Character do   
    let(:character) { FactoryGirl.create :character}

  describe "#add_units" do  
        context "when unit doesnt exist beforehand" do          
        it "it create a new member" do
            expect(character.owns.count).to eq(0)
            character.add_units("character", "Archer" => 1)
            expect(character.owns.count).to eq(1)
            expect(character.owns.first.amount).to eq(1)
        end
    end
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails ruby-on-rails-4 factory-bot

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

命名管理控制器时类的超类不匹配

嘿,我正在尝试命名一组我只希望管理员能够访问的控制器。例如,我想要像 admin/products 或 admin/categories 这样的路由,但是当我调用位于controllers/admin 文件夹中的任何控制器时,我收到以下错误消息

superclass mismatch for class CategoriesController
Run Code Online (Sandbox Code Playgroud)

如果我之后立即重新启动服务器,我会得到这个

Unable to autoload constant Admin::CategoriesController
Run Code Online (Sandbox Code Playgroud)

Circular dependency detected while autoloading constant Admin::CategoriesController
Run Code Online (Sandbox Code Playgroud)

这些是我的路线

Rails.application.routes.draw do
  root 'pages#home'

  devise_for :admins
  namespace :admin do
    resources :categories, :except => [:new, :show]
    resources :products
  end

  resources :products
  resources :carts, :only => [:show]
  resources :line_items, :only => [:create, :destroy]

  # Shop controller
  get 'shop/index    

  # Admin controller
  get 'admin/index'
Run Code Online (Sandbox Code Playgroud)

这是我的类别控制器

class CategoriesController < ApplicationController
    before_filter :authenticate_admin!

    def index
        @categories = Category.all
        @category …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails ruby-on-rails-4

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

为什么会导致无限循环?

我正在尝试编写一个方法,将在矩阵(二维数组)上使用高斯消除,我正在尝试调试我的方法,我遇到了这个问题

public int Gauss() {
    int i = 1;
    int j = 1;
    int pivotCol = 0;
    while (pivotCol == 0 && j <= cols())
        if (i == rows()){
            j ++;
            i = 1;
        }
        if (get(i,j) == 1.0){
            pivotCol = j;
        } else {
            i ++;
        }
    return pivotCol;
}
Run Code Online (Sandbox Code Playgroud)

这不是最后的方法,但由于某种原因,这个循环永远不会停止,为什么?

java loops

0
推荐指数
2
解决办法
99
查看次数

将对象的实例作为参数传递给它自己的方法?

我试图将一个对象的实例作为一个方法参数传递给自己,但我不确定你是如何传递"整个"对象的,因为据我所知,它不是一个持有对象引用的实例变量

java

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